Python基礎・実行環境
Pythonを学び始めるときに必ず押さえておきたいのが 「予約語(キーワード)」 です。 予約語とは、Pythonが「特別な意味を持つ単語」としてあらかじめ取り決めている言葉で、変数名や関数名として使うことができません。 初心者のうちは気づかずに予約語を変数名に使ってしまい、エラーになることがよくあります。
ここでは、予約語とは何か、どうやって確認するのか、どんな場面で役立つのかをステップバイステップで丁寧に解説します。
Pythonの予約語とは何か
予約語(keyword)は、Python言語の構文を作るために使われる特別な単語です。 たとえば次のような単語は、Pythonの文法そのものを構成しています。
if, else, for, while, class, def, return, import, True, False, None
Pythonこれらは「Pythonがすでに使っている名前」なので、次のように変数名として使うとエラーになります。
class = 10 # ❌ 予約語なので使えない
Python予約語は「Pythonの文法を壊さないための安全装置」として存在しています。
予約語を確認する方法(最重要)
Pythonでは、予約語を一覧で確認するための公式モジュール keyword が用意されています。
予約語一覧を表示する
import keyword
print(keyword.kwlist)
Python出力例(Python 3.x):
['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で使ってはいけない名前」です。
予約語かどうかを判定する
予約語かどうかを調べたいときは、keyword.iskeyword() を使います。
import keyword
print(keyword.iskeyword("for")) # True
print(keyword.iskeyword("hello")) # False
print(keyword.iskeyword("class")) # True
Python初心者のうちは、変数名を決めるときに「念のためチェックする」習慣をつけると安全です。
予約語を使ってしまうとどうなるか(例題)
例:予約語を変数名に使う
def = 10
Python出力:
SyntaxError: invalid syntax
Pythonは「def は関数定義に使う単語だから、変数名にはできません」と教えてくれています。
例:予約語を関数名に使う
def return():
print("hello")
Python出力:
SyntaxError: invalid syntax
予約語は「文法の一部」なので、名前として使うと構文が壊れてしまいます。
予約語を避けるための命名テンプレート
初心者が予約語を避けるために使える命名パターンを紹介します。
良い命名例
class_name = "Python入門"
return_value = 10
async_task = True
Python悪い命名例(予約語そのもの)
class = "NG"
return = 10
async = True
Python悪い命名例(予約語に似ている)
clas = 10 # 読みにくい
retun = 20 # タイプミスしやすい
Python予約語に似た名前は、後から読む人が混乱するため避けるべきです。
予約語を理解すると何が嬉しいのか(深掘り)
① エラーの原因がすぐわかる
初心者がよく遭遇するエラーのひとつが「SyntaxError」。 予約語を変数名に使っているときに発生しやすいです。
② コードの可読性が上がる
予約語は「Pythonの文法を表す単語」なので、変数名に使うと読み手が混乱します。
③ セキュリティ上の安全性が上がる
予約語を誤って上書きすると、Pythonの動作が壊れたり、予期せぬ挙動が起きることがあります。
True = False # ❌ Pythonの真偽値を壊してしまう
Pythonこれは「言語の基本動作を破壊する危険な行為」です。
予約語一覧を見やすく整形するテンプレート
予約語を縦に並べて見たい場合は次のようにします。
import keyword
for kw in keyword.kwlist:
print(kw)
Python出力例:
False
None
True
and
as
assert
async
await
break
class
...
予約語を確認する練習(初心者向け)
練習1:予約語かどうか判定する
import keyword
print(keyword.iskeyword("lambda")) # True
print(keyword.iskeyword("price")) # False
Python練習2:予約語を避けて変数名をつける
次の単語を変数名として使えるか判断してみてください。
foritemreturnvalue
答え:
for→ ❌ 予約語item→ ✔️ 使えるreturn→ ❌ 予約語value→ ✔️ 使える
まとめ
- Pythonの予約語は「文法のために予約されている特別な単語」です。
- 予約語は変数名・関数名として使えません。
keyword.kwlistで一覧を確認できます。keyword.iskeyword()で予約語かどうか判定できます。- 予約語を理解すると、エラーを避けやすくなり、コードの可読性と安全性が向上します。
