このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Python入門】変数と定数は名前で区別する

変数と定数は名前で区別する
Pythonプログラミングにおいて、変数と定数はデータを管理し、操作するための基本的な要素です。これらを効果的に区別し活用することで、コードの可読性や保守性が向上し、バグの発生を防ぐことができます。
ここでは、変数と定数の違い、命名規則、PEP8に基づくベストプラクティスについて詳しく解説します。また、具体的なコード例を通じて、変数と定数をどのように名前で区別し、使用するかを学びます。

プログラムのダウンロード
「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。
1. 識別子とは
識別子とは、プログラム内で変数や関数、クラスなどに付ける名前のことを指します。Pythonでは、識別子として英字、数字、アンダースコア( _ )を使用できますが、以下のルールに従う必要があります。
識別子の命名規則
規則 | 説明 | 例 |
---|---|---|
使用可能な文字種 | アルファベット(大文字・小文字)、数字、アンダースコアのみ。 | variable1 , total_sum |
先頭文字 | 数字で始めてはいけない。 | 1variable は無効 |
大文字・小文字の区別 | Var と var は異なる識別子として扱われる。 | Count と count |
意味のある名前 | 変数の内容を理解しやすい名前を付ける。 | age , price , user_name |
特殊文字の禁止 | 空白や記号(@, #, $, など)は使用できない。 | user-name は無効 |
キーワードの禁止 | Pythonのキーワードと同じ名前は使用できない。 | for , if , class は無効 |
ポイント
- 識別子はプログラムの可読性を高めるために、意味のある名前を付けることが推奨されます。
- PEP8では、変数名と関数名には小文字とアンダースコアを用いたスネークケース(例:
total_sum
)を推奨しています。
2.変数の定義と使用
変数は、データを保存し、後で参照するための名前付きの領域です。Pythonでは、変数を作成する際に型を明示的に指定する必要はなく、代入する値によって自動的に型が決まります。
変数への値の代入
変数に値を代入するには、=
(イコール)を使用します。=
は代入演算子として機能し、右側の値を左側の変数に割り当てます。
【構文】
変数名 = 式
サンプルプログラム
# 整数を代入
number = 123
print(number) # 出力: 123
# 文字列を代入
greeting = "こんにちは"
print(greeting) # 出力: こんにちは
# 浮動小数点数を代入
pi = 3.14159
print(pi) # 出力: 3.14159
実行結果
123
こんにちは
3.14159
ポイント
- 変数名は意味のある名前を付けることで、コードの可読性が向上します。
- PEP8に従い、
=
の両側に空白を1個ずつ入れることが推奨されています(例:number = 123
)。
複数の変数への代入
Pythonでは、複数の変数に対して同時に値を代入することができます。これにより、コードをより簡潔に記述できます。
同じ値を複数の変数に代入
サンプルプログラム
# 変数x、y、zに同じ値を代入
x = y = z = 50
print(x) # 出力: 50
print(y) # 出力: 50
print(z) # 出力: 50
実行結果
50
50
50
異なる値を複数の変数に代入
サンプルプログラム
# 変数a、b、cに異なる値を代入
a, b, c = 10, 20.5, "Hello"
print(a) # 出力: 10
print(b) # 出力: 20.5
print(c) # 出力: Hello
実行結果
10
20.5
Hello
ポイント
- 複数の変数に同時に代入することで、コードが簡潔になります。
- 変数と値の数は一致させる必要があります。
3.定数の取り扱い
多くのプログラミング言語では、値を変更できない定数をサポートしていますが、Pythonには公式な定数の概念はありません。しかし、PEP8のガイドラインに従い、特定の命名規則を用いることで、定数として扱うべき変数を区別することが一般的です。
定数の命名規則
規則 | 説明 | 例 |
---|---|---|
英大文字の使用 | 定数は英大文字を使用し、単語の区切りにアンダースコアを用いる。 | MAX_LENGTH , PI_VALUE |
変更しないことの明示 | 定数として扱う変数は、後から値を変更しないようにする(慣習)。 | MAX_LENGTH = 10000 |
サンプルプログラム
# 定数の定義
MAX_USERS = 100
PI_VALUE = 3.14159
print(MAX_USERS) # 出力: 100
print(PI_VALUE) # 出力: 3.14159
# 定数として定義した変数を変更(推奨されない)
MAX_USERS = 150
print(MAX_USERS) # 出力: 150
実行結果
100
3.14159
150
注意点
- Pythonでは、定数を変更することが可能ですが、定数として定義した変数は変更しないことが慣習となっています。
- 定数の変更を防ぐために、コードレビューやテストで定数の再代入をチェックすることが推奨されます。
4.キーワードと識別子の制限
Pythonには、キーワードと呼ばれる特別な意味を持つ識別子が存在します。これらのキーワードは、変数名や関数名として使用することができません。
Pythonのキーワード一覧(アルファベット順)
and | as | assert | async | await |
break | case | class | continue | def |
del | elif | else | except | False |
finally | for | from | global | if |
import | in | is | lambda | match |
nonlocal | not | or | pass | raise |
return | True | try | while | with |
yield |
注意事項
1. バージョン依存性
Pythonのキーワードはバージョンによって追加されることがあります。使用しているPythonのバージョンに応じて、キーワードの数や内容が異なる場合があります。
2. 識別子としての使用禁止
キーワードはPythonの文法で特別な意味を持つため、変数名や関数名として使用することはできません。例えば、for
やif
といったキーワードを変数名にすると、SyntaxErrorが発生します。
サンプルプログラム
for = 10 # SyntaxError: invalid syntax
if = "条件" # SyntaxError: invalid syntax
実行結果
Cell In[5], line 1
for = 10 # SyntaxError: invalid syntax
^
SyntaxError: invalid syntax
3. 大文字と小文字の区別
Pythonのキーワードはすべて小文字で定義されています。大文字と小文字は区別されるため、例えばTrue
やFalse
はPythonのキーワードですが、TRUE
やFALSE
はキーワードではなく、通常の識別子として扱われます。
サンプルプログラム
True # キーワード: 真を表す TRUE # 変数名として使用可能
TRUE = 10
4. PEP8による命名規則との関連
PEP8では、変数名や関数名には小文字とアンダースコアを用いたスネークケース(例:total_sum
)を推奨しています。一方、定数として扱うべき変数名にはすべて大文字とアンダースコアを用いることが推奨されています(例:MAX_LENGTH
)。これにより、コードの可読性が向上し、変数と定数の区別が明確になります。
サンプルプログラム
# 変数
error_message = "ファイルが見つかりません。"
# 定数
MAX_RETRIES = 5
まとめ
ここでは、変数と定数を名前で区別する方法について学びました。
- 識別子の命名規則:有効な識別子を作成するためのルールと、PEP8に基づく命名のベストプラクティスを理解しました。
- 変数の定義と使用:変数に値を代入し、複数の変数に対して同時に値を代入する方法を学びました。
- 定数の取り扱い:Pythonにおける定数の概念と、定数を識別するための命名規則を理解しました。
- キーワードと識別子の制限:Pythonのキーワードを識別子として使用できないことを確認しました。
これらの知識を基に、Pythonプログラム内で効果的に変数と定数を管理し、コードの可読性と保守性を高めることができます。次のコンテンツでは、不要な変数は削除するという概念について詳しく解説していきます。ぜひ、実際にコードを書きながら、変数と定数の使い分けを体験してみてください。