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 | イミュータブル |
NoneType | NoneType | イミュータブル |
コメント