Pythonの変数と型について

Python

Pythonの変数と型の説明、ミュータブル・イミュータブルについて説明します。

Pythonの変数と型の扱い方は非常に柔軟で、簡単に変数を定義して値を代入できます。また、動的型付けをサポートすることで、開発をより迅速かつ柔軟に行うことができます。

変数

変数は、データを格納するための入れ物です。Pythonでは、変数を定義するには単に変数名を使います。変数名は、英字またはアンダースコアで始まり、その後に英数字やアンダースコアを使用できます。例えば、以下のように変数を定義できます。

x = 5

このコードでは、変数名xに値5を代入しています。このように、Pythonでは変数に値を代入することができます。変数は、同じ名前で何度でも再代入できます。

x = 5
x = "Hello, world!"

この例では、最初に変数xに整数値5を代入しています。しかし、その後に同じ変数に文字列"Hello, world!"を再代入しています。Pythonでは、変数の型は動的に決定されます。つまり、変数に代入される値に応じて、自動的に型が決定されます。この機能は、プログラムの開発をより迅速に行うことができるようにします。

データ型

Pythonにはいくつかのデータ型があります。以下に、いくつかの主要なデータ型を紹介します。

数値型(int, float, complex)

Pythonには、整数、浮動小数点数、複素数の3種類の数値型があります。

x = 5          # 整数
y = 2.5        # 浮動小数点数
z = 1 + 2j     # 複素数

ブール型(bool)

ブール型は、TrueまたはFalseの値を表します。

x = True
y = False

文字列型(str)

文字列型は、テキストデータを表します。Pythonでは、文字列はシングルクォーテーションまたはダブルクォーテーションで囲むことができます。

x = "Hello, world!"

バイト型(bytes, bytearray)

バイト型とは、バイト(8ビット)の配列を扱うための型です。バイト列型とバイト配列型の2つがあります。

バイト列を作成するには、文字列の先頭に b を付けるか、bytes() 関数を使用します。バイト配列型を作成するには、 bytearray() 関数を使用します。

#  バイト列型
b = b'hello world'
b = bytes('hello world', encoding='utf-8')

# バイト配列型
ba = bytearray(b'hello world')

リスト型(list)

リスト型は、複数の要素を格納することができるデータ型です。リストに格納される要素は、任意のデータ型であることができます。

fruits = ["apple", "banana", "cherry"]

辞書型(dict)

辞書型は、キーと値のペアを格納することができるデータ型です。キーは一意で、値は重複することができます。

person = {"name": "John", "age": 30, "gender": "male"}

タプル型(tuple)

タプル型は、複数の値をまとめて格納することができるデータ型です。リストとは異なり、タプルは変更不可能です。

numbers = (1, 2, 3, 4, 5)

集合型(set, frozenset)

集合型とは、重複を許さず、順序のない複数の要素を扱うための型です。集合型と凍結集合型の2つがあります。

# 集合型
s1 = {1, 2, 3}
s2 = set([3, 4, 5])

# 凍結集合型
fs1 = frozenset([1, 2, 3])

None型

None 型は、Pythonの特殊な型のひとつで、値が何もないことを表します。None は、関数が値を返さない場合や、変数に初期値を与える場合などによく使用されます。

x = None

型の確認

Pythonでは、type()関数を使用して、変数の型を確認することができます。

x = 5
print(type(x))   # <class 'int'>

y = "Hello, world!"
print(type(y))   # <class 'str'>

ミュータブルとイミュータブル

Pythonには、ミュータブルなオブジェクトとイミュータブルなオブジェクトがあります。ミュータブルなオブジェクトは変更可能であり、イミュータブルなオブジェクトは変更できません。

ミュータブルなオブジェクト

ミュータブルなオブジェクトは、作成後に値を変更することができるオブジェクトです。Pythonには、以下のようなミュータブルなオブジェクトがあります。

# リスト
numbers = [1, 2, 3, 4, 5]   # リストはミュータブルなオブジェクト
numbers[0] = 0   # 要素の値を変更することができる
numbers.append(6)   # 新しい要素を追加することができる

# 辞書
person = {"name": "Alice", "age": 25}   # ディクショナリはミュータブルなオブジェクト
person["age"] = 26   # キーと値を変更することができる
person["gender"] = "female"   # 新しいキーと値のペアを追加することができる

# セット
numbers = {1, 2, 3, 4, 5}   # セットはミュータブルなオブジェクト
numbers.add(6)   # 新しい要素を追加することができる
numbers.remove(1)   # 要素を削除することができる

イミュータブルなオブジェクト

イミュータブルなオブジェクトは、一度作成されたら変更できないオブジェクトです。Pythonには、以下のようなイミュータブルなオブジェクトがあります。

# 数値
x = 5   # 整数はイミュータブルなオブジェクト
x += 1  # 変数の値を更新するのではなく、新しいオブジェクトを作成する
print(x)   # 6

# 文字列
message = "Hello, world!"   # 文字列はイミュータブルなオブジェクト
message[0] = "J"  # TypeError: 'str' object does not support item assignment

# タプル
numbers = (1, 2, 3, 4, 5)   # タプルはイミュータブルなオブジェクト
numbers[0] = 0  # TypeError: 'tuple' object does not support item assignment

一覧表

型名クラス名ミュータブル/イミュータブル
整数intイミュータブル
浮動小数点数floatイミュータブル
複素数complexイミュータブル
真偽値boolイミュータブル
文字列strイミュータブル
バイト列bytesイミュータブル
バイト配列bytearrayミュータブル
リストlistミュータブル
辞書dictミュータブル
タプルtupleイミュータブル
集合setミュータブル
凍結集合frozensetイミュータブル
NoneTypeNoneTypeイミュータブル

コメント