今回は、Pythonで変数を初期化する方法についてご紹介します。
Pythonにおける変数初期化の基本
Pythonでは変数の宣言を明示的に行う必要はなく、代入と同時に変数が作成されます。
また、Pythonは動的型付けの言語であるため、同じ変数に後から異なる型の値を入れることも可能です。
ここでは、基本的な数値、文字列、ブール値、Noneなどを初期化する例を紹介します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 数値の初期化 number = 42 pi = 3.14 # 文字列の初期化 greeting = "Hello" message = 'Pythonの初期化例です' # ブール値の初期化 flag = True is_valid = False # 値が未定の場合はNone unknown_value = None |
具体的な初期化方法とコード例
ここではリストや辞書、タプル、集合といった複数のデータを扱う場合の初期化方法や、複数代入、型アノテーションなどについて解説します。
コレクションの初期化
Pythonには複数の値をまとめて扱うためのデータ型があり、初期化の仕方もそれぞれ異なります。
リストは角括弧 [ ] で初期化し、要素の追加や変更が可能です。
1 2 3 4 5 6 7 8 9 10 |
# リストの初期化例 numbers = [1, 2, 3, 4, 5] mixed_list = [10, "apple", 3.14, True] # 空のリスト empty_list = [] # リストを使った簡単な処理 for item in mixed_list: print(item) |
1
apple
3.14
True
タプルは丸括弧 ( ) を使い、一度作成すると内容を変更できません。
1 2 3 |
# タプルの初期化例 point = (10, 20) single_tuple = (42,) # 要素が1つの場合はカンマをつける |
辞書はキーと値をペアにして、波括弧 { } で初期化します。
1 2 3 4 5 6 7 8 |
# 辞書の初期化例 person = { "name": "Alice", "age": 30 } # 空の辞書 empty_dict = {} |
集合は重複を許さないデータ型で、主に波括弧 { } を使って初期化します。
1 2 3 |
# 集合の初期化例 unique_numbers = {1, 2, 3, 3, 4, 5} # 3は重複するが1つしか保持されない empty_set = set() # 空の集合は set() を使う |
複数代入とアンパック
Pythonでは、複数の変数に対して同時に値を代入することができます。
また、リストやタプルから一度に複数の変数へ値を取り出すアンパックも可能です。
1 2 3 4 5 6 7 8 9 |
# 複数代入 a, b, c = 10, 20, 30 # リストからのアンパック values = [1, 2, 3] x, y, z = values print(a, b, c) print(x, y, z) |
10 20 30
1 2 3
型アノテーションを用いた初期化
Python 3.6以降では、型アノテーションを記述することで変数の型を明示できます。
ただし、これは実行時に強制されるものではなく、あくまで注釈として扱われます。
1 2 3 4 |
# 型アノテーションの例 name: str = "Bob" age: int = 25 ratio: float = 3.14 |
クラス内での変数初期化
クラスの場合、インスタンス変数はコンストラクタである __init__ メソッド内で初期化します。
1 2 3 4 5 6 7 8 |
class Person: def __init__(self, name: str, age: int): self.name = name self.age = age person1 = Person("太郎", 30) print(person1.name) print(person1.age) |
太郎
30
よくあるエラーや注意点
ここからは、変数初期化にまつわる注意点やエラーの原因をまとめます。
変数名の命名規則と予約語
変数名はアルファベットやアンダースコア _ を使って自由につけることができます。
ただし、先頭に数字は使えませんし、if や for など予約語の使用も避けてください。
動的型付けの落とし穴
後から型が変わることが許されている分、意図せず型が変わり、演算エラーを招く場合があります。
複雑なコードになるほど型の混在による不具合が起きやすくなるため、意図しない型変更には注意が必要です。
ミュータブルなオブジェクトに関する注意
リストや辞書などの変更可能なオブジェクトは、関数のデフォルト引数に使うと意図せずデータが共有されてしまうことがあります。
この場合、None をデフォルト値にして内部で新しいリストや辞書を作成するといった方法で対応します。
最後に、コードの可読性を高めるためにも型アノテーションや分かりやすい変数名を付けることをおすすめします。
まとめ
Pythonでは、変数は代入と同時に作成されるため宣言が不要です。
動的型付けの特性を踏まえたうえで、リストや辞書などの使い方やクラスにおける初期化方法を理解しておくと、幅広い実装に対応できます。
また、変数名の付け方や型の扱いには十分に注意すると、保守性の高いコードを作成できます。