プログラミングにおいて「変数」とは、数値や文字列などのデータを一時的に格納しておくための「名前付きの入れ物」のようなものです。Pythonでは、この変数を非常に簡単に利用できます。
この記事では、Pythonにおける変数の基本的な使い方と、エラーを避けるための命名規則について解説します。
変数の基本的な使い方(代入)
変数を使用するには、まず「代入演算子(=)」を使って変数にデータを格納します。これを「代入」と呼びます。
# 'user_name' という変数に文字列 "Tanaka" を代入する
user_name = "Tanaka"
# 'user_age' という変数に数値 35 を代入する
user_age = 35
# 変数に格納された値を出力する
print(user_name)
print(user_age)
# 変数の値は上書きできる
user_age = 36
print(f"1年後: {user_age}")
実行結果:
Tanaka
35
1年後: 36
変数の命名規則
変数名は、開発者が自由に決めることができますが、Pythonの文法として守るべきルール(命名規則)があります。
1. 有効な変数名(使える文字)
変数名として使用できるのは、以下の文字の組み合わせです。
- 英小文字 (
a〜z) - 英大文字 (
A〜Z) - 数字 (
0〜9) - アンダースコア (
_)
また、Pythonは大文字と小文字を厳密に区別します。item と Item は異なる変数として扱われます。
有効な変数名の例:
# 有効な例
item_price = 1500
_internal_flag = True
user_id_001 = "A-001"
2. 無効な変数名(構文エラー)
以下のルールに反する名前を付けようとすると、SyntaxError(構文エラー)が発生し、プログラムは実行されません。
A. 数字で始めることはできない
変数名の先頭に数字を使うことはできません。
# SyntaxError: invalid syntax
# 1st_place = "Gold"
B. 予約語(キーワード)は使えない
Pythonが文法として使用する単語(if, for, def, while, True, False など)は、変数名として使用できません。これらを「予約語」または「キーワード」と呼びます。
# SyntaxError: invalid syntax
# if = 10
# for = "loop"
C. 記号(アンダースコア以外)は使えない
ハイフン(-)やスペース、@, $ などは変数名に使用できません。
# SyntaxError
# item-code = "X100" # ハイフンは引き算と解釈される
# item code = "X100" # スペースは使えない
推奨されない変数名(組み込み関数との衝突)
構文エラーにはなりませんが、使用を避けるべき名前があります。それは、Pythonが標準で提供している「組み込み関数」や「組み込み型」の名前です。
例: print, list, str, int, sum, max など
もし、これらの名前を変数名として使用してしまうと、本来の機能がその変数で上書きされてしまい、予期せぬエラーの原因となります。
# 推奨されない例
# 'list' という名前の変数を作成
list = [10, 20, 30]
print(f"リストの内容: {list}")
# 本来の list() 関数(型変換)が使えなくなる
# numbers = list("123")
# TypeError: 'list' object is not callable
上記の例では、list という変数を作成したため、list() という組み込み関数(文字列などをリストに変換する機能)が呼び出せなくなってしまいました。
衝突の回避策
もし組み込み関数の名前をどうしても変数名の一部として使いたい場合は、以下のような方法で衝突を回避します。
- 末尾にアンダースコア(
_)を付ける これはPythonのコミュニティでよく使われる慣習です。Pythonlist_ = [10, 20, 30] # これで list() 関数と衝突しない - より具体的で説明的な名前を付ける 最も推奨される方法です。
list_よりもitem_listやuser_listの方が、コードを読む人にとって親切です。Python# 具体的で分かりやすい名前(推奨) item_list = [10, 20, 30] total_value = sum(item_list) # 本来の sum() が問題なく使える
まとめ
Pythonの変数は、データを扱うための基本的な機能です。
=を使ってデータを代入します。- 命名規則(数字で始まらない、予約語を使わない)を守る必要があります。
listやstrなどの組み込み関数名を変数名として使うと、本来の機能が上書きされてしまうため避けるべきです。user_listやtotal_valueのように、処理内容が伝わる具体的な名前を付けることが、読みやすいコードの維持に繋がります。
