Python 予約キーワード
Python キーワード(予約語とも呼ばれます)は、Python 言語において特別な意味を持つ単語であり、特定の構文機能のために Python インタープリターによって予約されています。これらのキーワードは、変数名、関数名、その他の識別子として使用することはできません。
特徴
- 不変性:キーワードは言語仕様の一部であり、その意味を変更することはできません
- 有限性:Python のキーワード数は固定されています(Python 3.8 には 35 個のキーワードがあります)
- 大文字と小文字を区別する:すべてのキーワードは小文字形式です
- 構文機能:各キーワードには特定の構文的役割があります
すべてのキーワードを表示
Python のkeywordモジュールを使用して、現在のバージョンのすべてのキーワードを確認できます:
実例
import keyword
print(keyword.kwlist)
print(keyword.kwlist)
Python 3.8 では、出力結果は次のようになります:
['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 キーワードは、機能に応じて以下の大きなカテゴリに分類できます:
1. 値キーワード
これらのキーワードは特定の値を表します:
| キーワード | 説明 | 例 |
|---|---|---|
True |
ブール真値(True) | flag = True |
False |
ブール偽値(False) | flag = False |
None |
空値または値なしを表します(None) | result = None |
2. 演算子キーワード
論理演算およびブール演算に使用されます:
| キーワード | 説明 | 例 |
|---|---|---|
and |
論理積(and) | if x > 0 and x < 10: |
or |
論理和(or) | if x < 0 or x > 100: |
not |
論理否定(not) | if not is_valid: |
is |
オブジェクトの同一性比較(is) | if x is None: |
in |
メンバーシップテスト(in) | if 'a' in 'apple': |
3. 制御フローキーワード
プログラムの実行フローを制御します:
| キーワード | 説明 | 例 |
|---|---|---|
if |
条件分岐(if) | if x > 0: print("Positive") |
elif |
そうでなければ、もし(elif) | elif x == 0: print("Zero") |
else |
そうでなければ(else) | else: print("Negative") |
for |
ループ文(for) | for i in range(5): |
while |
ループ文(while) | while x > 0: |
break |
ループから抜け出す(break) | break |
continue |
次のループへ続行(continue) | continue |
4. 関数とクラス関連キーワード
関数とクラスの定義および操作に使用されます:
| キーワード | 説明 | 例 |
|---|---|---|
def |
関数を定義(def) | def my_func(): |
return |
関数の戻り値(return) | return x + y |
lambda |
匿名関数(lambda) | f = lambda x: x**2 |
class |
クラスを定義(class) | class MyClass: |
pass |
空文のプレースホルダー(pass) | pass |
5. 例外処理キーワード
プログラム内の例外を処理します:
| キーワード | 説明 | 例 |
|---|---|---|
try |
コードブロックの実行を試みる(try) | try: |
except |
例外をキャッチ(except) | except ValueError: |
finally |
例外の有無にかかわらず実行(finally) | finally: |
raise |
例外を発生させる(raise) | raise ValueError("Invalid") |
6. インポートとモジュールキーワード
モジュールとインポートを管理します:
| キーワード | 説明 | 例 |
|---|---|---|
import |
モジュールをインポート(import) | import math |
from |
モジュールから特定の内容をインポート(from) | from math import sqrt |
as |
エイリアス(as) | import numpy as np |
7. 変数スコープキーワード
変数のスコープを制御します:
| キーワード | 説明 | 例 |
|---|---|---|
global |
グローバル変数を宣言(global) | global count |
nonlocal |
非ローカル変数を宣言(nonlocal) | nonlocal x |
8. 非同期プログラミングキーワード
(Python 3.5+ で追加):
| キーワード | 説明 | 例 |
|---|---|---|
async |
非同期関数を定義(async def) | async def fetch(): |
await |
非同期操作の完了を待機(await) | await response |
9. その他のキーワード
| キーワード | 説明 | 例 |
|---|---|---|
del |
参照を削除(del) | del my_list[0] |
with |
コンテキスト管理(with) | with open('file') as f: |
yield |
ジェネレーターの戻り値(yield) | yield x |
assert |
条件が真であることを表明(assert) | assert x > 0 |
キーワードの正しい使い方
1. 識別子として使用できない
キーワードを変数名として使用しようとすると、構文エラーが発生します:
実例
# 誤った例
class = "Computer Science" # SyntaxError
class = "Computer Science" # SyntaxError
2. 大文字と小文字に注意
Python のキーワードはすべて小文字ですが、大文字と小文字が異なる単語は識別子として使用できます:
実例
# これは許可されています
Class = "Math" # キーワードではありません
Class = "Math" # キーワードではありません
3. コンテキストの正確性
各キーワードには特定の使用コンテキストがあり、誤って使用すると構文エラーが発生します:
実例
# 誤った例
def = 5 # SyntaxError
def = 5 # SyntaxError
4. 組み合わせて使用
多くのキーワードは、完全な機能を発揮するために組み合わせて使用する必要があります:
実例
# if-elif-else の組み合わせ
if x > 0:
print("Positive")
elif x == 0:
print("Zero")
else:
print("Negative")
if x > 0:
print("Positive")
elif x == 0:
print("Zero")
else:
print("Negative")
実際の応用例
例1:制御フローキーワードの応用
実例
# 成績レベルを判定
score = 85
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
else:
grade = 'D'
print(f"成績レベル: {grade}")
score = 85
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
else:
grade = 'D'
print(f"成績レベル: {grade}")
例2:関数と例外処理
実例
# 平方根を安全に計算する関数
import math
def safe_sqrt(x):
try:
result = math.sqrt(x)
except ValueError:
print("負の数の平方根は計算できません")
result = None
finally:
print("計算完了")
return result
print(safe_sqrt(4)) # 2.0
print(safe_sqrt(-1)) # 負の数の平方根は計算できません\nNone
import math
def safe_sqrt(x):
try:
result = math.sqrt(x)
except ValueError:
print("負の数の平方根は計算できません")
result = None
finally:
print("計算完了")
return result
print(safe_sqrt(4)) # 2.0
print(safe_sqrt(-1)) # 負の数の平方根は計算できません\nNone
例3:コンテキストマネージャー
実例
# with キーワードを使用してファイルリソースを自動管理
with open('example.txt', 'w') as f:
f.write("Hello, Python Keywords!")
# ファイルは自動的に閉じられ、手動で f.close() を呼び出す必要はありません
with open('example.txt', 'w') as f:
f.write("Hello, Python Keywords!")
# ファイルは自動的に閉じられ、手動で f.close() を呼び出す必要はありません
よくあるエラーと注意事項
1、キーワードを変数名として誤用
実例
# 誤り
from = "Beijing"
# 正しい
origin = "Beijing"
from = "Beijing"
# 正しい
origin = "Beijing"
2、コロンを忘れる
実例
# 誤り
if x > 0
print("Positive")
# 正しい
if x > 0:
print("Positive")
if x > 0
print("Positive")
# 正しい
if x > 0:
print("Positive")
3、不完全な制御構造
実例
# 誤り - else または elif が欠けている
if x > 0:
elif x == 0:
# 正しい
if x > 0:
pass
elif x == 0:
pass
if x > 0:
elif x == 0:
# 正しい
if x > 0:
pass
elif x == 0:
pass
4、正しくないインデント
実例
# 誤り
if x > 0:
print("Positive") # インデントが欠けている
# 正しい
if x > 0:
print("Positive")
if x > 0:
print("Positive") # インデントが欠けている
# 正しい
if x > 0:
print("Positive")
5、バージョンの違い
- Python 2.x では print と exec がキーワードでした
- Python 3.x では print と exec は組み込み関数であり、キーワードではなくなりました
- async と await は Python 3.5+ で追加されたキーワードです