コンテンツにスキップ

Python/変数と代入

出典: フリー教科書『ウィキブックス(Wikibooks)』



変数とは

[編集]

Pythonにおける変数は、値に名前(識別子)を付けて参照するための仕組みです。変数を定義するには、変数名を使って値を代入します:

my_variable = 42

この例では、my_variableという変数に整数値42が代入されています。Pythonの特徴として、変数は値を柔軟に格納および変更できます。

Pythonは動的型付け言語です。つまり、変数自体には型がなく、変数が参照する値がその型を持ちます。これにより、同じ変数で異なる型の値を扱うことができます:

my_variable = 42         # 整数型
my_variable = "Hello"    # 文字列型

変数を使用することで、データや計算結果を保持し、プログラム内で再利用できます。適切な変数名を選択することで、コードの可読性と保守性が向上します。

変数と参照

[編集]

Pythonにおける変数の動作を理解するには、参照の概念が重要です:

  1. 変数の定義: 変数は値への参照を作成します:
    x = 42  # 変数xは整数42への参照を保持
    
  2. 参照の共有: 変数への代入は参照のコピーを作成します:
    y = x  # yはxと同じ値を参照
    
  3. オブジェクトの参照: Pythonではすべてがオブジェクトであり、変数はオブジェクトへの参照を持ちます:
    list_a = [1, 2, 3]
    list_b = list_a  # list_bはlist_aと同じリストを参照
    
  4. ミュータブル性の影響: オブジェクトの変更可能性は参照の動作に影響します:
    # 不変(イミュータブル)オブジェクト
    x = 42
    y = x
    x = 43  # xは新しい値を参照、yは42のまま
    
    # 可変(ミュータブル)オブジェクト
    list_a = [1, 2]
    list_b = list_a
    list_a.append(3)  # list_aとlist_b両方が[1, 2, 3]を参照
    

データ型

[編集]

Python 3.12では、以下のような基本的なデータ型が提供されています:

# 数値型
x = 42          # int(整数)
y = 3.14        # float(浮動小数点数)
z = 3 + 4j      # complex(複素数)

# シーケンス型
text = "Hello"   # str(文字列)
nums = [1, 2, 3] # list(リスト)
point = (x, y)   # tuple(タプル)

# マッピング型
data = {"name": "Alice", "age": 30}  # dict(辞書)

# セット型
unique = {1, 2, 3}  # set(集合)

# 真偽値
is_valid = True    # bool(ブール値)

# None型
empty = None       # NoneType

識別子とキーワード

[編集]

識別子の命名規則

[編集]

Python 3.12における識別子の命名規則:

  • 英字(a-z、A-Z)またはアンダースコア(_)で始まる
  • 2文字目以降は英数字またはアンダースコア
  • 大文字と小文字は区別される
  • キーワードは使用できない
  • Unicode文字も使用可能(Python 3.0以降)

キーワード

[編集]

Python 3.12の予約済みキーワード一覧:

import keyword
print(' '.join(keyword.kwlist))
実行結果:
False None True and as assert async await break class continue def del elif else except finally for from global if import in is lambda nonlocal not or pass raise return try while with yield

ソフトキーワード

[編集]

Python 3.12では、以下がソフトキーワードとして定義されています:

  • case
  • match
  • _

これらは特定のコンテキストでのみキーワードとして機能し、それ以外では通常の識別子として使用できます。

ベストプラクティス

[編集]

命名規則

[編集]
  • 説明的な名前を使用: 変数の目的や内容が明確に分かる名前を選択
  • スネークケースを使用: 単語間はアンダースコアで区切る(例:user_name
  • 短すぎず長すぎない: 適度な長さで理解しやすい名前を選択
  • 予約語との衝突を避ける: Pythonのキーワードや組み込み関数名との重複を避ける

コーディング規約

[編集]
  • PEP 8に従った命名規則を採用
  • 一貫性のある命名パターンを維持
  • クラス名はキャメルケース(例:UserProfile
  • 定数は大文字のスネークケース(例:MAX_VALUE

参考文献

[編集]