Python 予約キーワード

Python3 基本構文

Python キーワード(予約語とも呼ばれます)は、Python 言語において特別な意味を持つ単語であり、特定の構文機能のために Python インタープリターによって予約されています。これらのキーワードは、変数名、関数名、その他の識別子として使用することはできません。

特徴

  1. 不変性:キーワードは言語仕様の一部であり、その意味を変更することはできません
  2. 有限性:Python のキーワード数は固定されています(Python 3.8 には 35 個のキーワードがあります)
  3. 大文字と小文字を区別する:すべてのキーワードは小文字形式です
  4. 構文機能:各キーワードには特定の構文的役割があります

すべてのキーワードを表示

Python のkeywordモジュールを使用して、現在のバージョンのすべてのキーワードを確認できます:

実例

import keyword

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

2. 大文字と小文字に注意

Python のキーワードはすべて小文字ですが、大文字と小文字が異なる単語は識別子として使用できます:

実例

# これは許可されています
Class = "Math"  # キーワードではありません

3. コンテキストの正確性

各キーワードには特定の使用コンテキストがあり、誤って使用すると構文エラーが発生します:

実例

# 誤った例
def = 5  # SyntaxError

4. 組み合わせて使用

多くのキーワードは、完全な機能を発揮するために組み合わせて使用する必要があります:

実例

# if-elif-else の組み合わせ
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}")

例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

例3:コンテキストマネージャー

実例

# with キーワードを使用してファイルリソースを自動管理
with open('example.txt', 'w') as f:
    f.write("Hello, Python Keywords!")
# ファイルは自動的に閉じられ、手動で f.close() を呼び出す必要はありません

よくあるエラーと注意事項

1、キーワードを変数名として誤用

実例

# 誤り
from = "Beijing"
   
# 正しい
origin = "Beijing"

2、コロンを忘れる

実例

# 誤り
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

4、正しくないインデント

実例

# 誤り
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+ で追加されたキーワードです

Python3 基本構文

その他の拡張