Pythonの予約語「or」の解説
orとは何か
orは、Pythonの論理演算子で、2つ以上の条件のいずれかがTrue
であればTrue
を返すために使用されます。複数の条件を評価し、そのうちの1つでも成立すれば、全体がTrue
と評価されます。もし全ての条件がFalse
であれば、False
が返されます。
orの基本的な使い方
以下の例は、or
を使って複数の条件を評価する基本的な使い方を示しています。
x = 5
y = 10
if x > 0 or y > 20:
print("条件の1つが真です") # 出力: 条件の1つが真です
この例では、x > 0
がTrue
であるため、全体の条件がTrue
と評価され、"条件の1つが真です"
というメッセージが出力されます。
orを使った条件分岐
or
は、条件分岐の中で複数の条件のいずれかが成立した場合に特定の処理を実行したいときに役立ちます。次の例では、ユーザーの入力が特定の条件を満たしているかどうかを確認しています。
username = "admin"
password = "1234"
if username == "admin" or password == "admin123":
print("ログイン成功")
else:
print("ログイン失敗")
この例では、ユーザー名が"admin"
であるため、条件がTrue
となり、"ログイン成功"
が出力されます。もしどちらの条件もFalse
なら、"ログイン失敗"
が出力されます。
orの短絡評価(ショートサーキット評価)
Pythonのor
演算子は短絡評価(ショートサーキット評価)を行います。これは、最初の条件がTrue
の場合、残りの条件は評価されず、すぐにTrue
が返されます。次の例で動作を確認してみましょう。
def expensive_function():
print("この関数は実行されません")
return True
x = True
if x or expensive_function():
print("条件がTrueのため、関数は実行されません") # 出力: 条件がTrueのため、関数は実行されません
この例では、最初の条件x
がTrue
であるため、expensive_function()
は実行されません。これが短絡評価の特徴です。
orの動作まとめ
以下に、or
演算子の基本的な動作をまとめた表を示します。
条件式 | 結果 |
---|---|
True or False |
True |
False or True |
True |
False or False |
False |
True or True |
True |
orとブールコンテキスト
Pythonでは、任意のオブジェクトに対してもor
を使うことができ、オブジェクトの「真偽値コンテキスト」に基づいて結果が返されます。or
の演算子は最初にTrue
と評価されるオブジェクトを返し、すべてがFalse
であれば最後のオブジェクトを返します。
例: オブジェクトに対するorの使用
a = None
b = "Python"
result = a or b
print(result) # 出力: Python
この例では、a
がNone
でFalse
と評価されるため、b
が返されます。
まとめと注意点
or
は、複数の条件のうち1つでもTrue
であればTrue
を返します。- Pythonでは、
or
演算子は短絡評価を行い、最初にTrue
が見つかると残りの条件は評価されません。 - ブールコンテキストに基づいて、
or
は任意のオブジェクトを評価し、最初にTrue
と評価されるオブジェクトを返します。 - 複雑な条件式を簡潔にまとめたい場合に
or
が有効です。