Python の `or` 演算子を理解する
Takashi Yamamoto
Infrastructure Engineer · Leapcell

Key Takeaways
or
演算子は、少なくとも1つの条件が真である場合にTrue
を返します。- ショートサーキット評価を使用し、最初の条件が
True
の場合は2番目の条件をスキップします。 - 非ブール値の場合、
or
は最初の真の値または最後の偽の値を返します。
Pythonでは、or
演算子は、2つの条件を組み合わせるために使用される論理演算子です。少なくとも1つの条件が真である場合に True
を返し、それ以外の場合は False
を返します。この動作は、プログラムのフローを制御し、複数の条件に基づいて意思決定を行う上で基本的なものです。
or
演算子の基本的な使い方
or
演算子を使用するための構文は簡単です:
condition1 or condition2
ここで、condition1
と condition2
は、True
または False
のいずれかに評価される式です。or
演算子は、これらの条件を評価し、少なくとも1つが True
である場合に True
を返します。両方が False
の場合、False
を返します。
例:
x = 10 y = 5 if x > 5 or y > 10: print("少なくとも1つの条件がTrueです") else: print("両方の条件がFalseです")
この例では、最初の条件 x > 5
は True
であり、2番目の条件 y > 10
は False
です。条件の1つが True
であるため、or
演算子は True
を返し、出力は次のようになります:
少なくとも1つの条件がTrueです
ショートサーキット評価
Pythonの or
演算子は、ショートサーキット評価と呼ばれる手法を使用しています。これは、結果が決定されるとすぐに評価が停止することを意味します。最初の条件が True
の場合、Pythonは2番目の条件を評価しません。なぜなら、全体的な結果は確実に True
になるからです。
例:
def check_first(): print("最初の条件をチェック中") return True def check_second(): print("2番目の条件をチェック中") return False if check_first() or check_second(): print("少なくとも1つの条件がTrueです")
出力:
最初の条件をチェック中
少なくとも1つの条件がTrueです
この例では、check_first()
が True
を返すため、check_second()
は呼び出されず、ショートサーキット評価を示しています。
非ブール値での or
の使用
Pythonでは、or
演算子は非ブール値でも使用できます。最初に遭遇した真の値を返すか、真の値がない場合は最後の値を返します。値は、ブールコンテキストで True
と評価される場合に真と見なされます。
例:
a = '' b = 'Hello' result = a or b print(result) # 出力: Hello
ここで、a
は空の文字列であり、偽であり、b
は空ではない文字列であり、真です。or
演算子は a
が偽であるため、b
を返します。
この動作は、デフォルト値を設定するのに特に役立ちます。
例:
user_input = '' default_value = 'Default' final_value = user_input or default_value print(final_value) # 出力: Default
この場合、user_input
が空の文字列(偽)であるため、final_value
には default_value
が割り当てられます。
よくある落とし穴
or
演算子は強力ですが、その動作を認識して、よくある落とし穴を避けることが重要です。そのような落とし穴の1つは、or
が常にブール値を返すと想定することです。以前に見たように、非ブール値で使用すると、or
は最初の真の値または真の値がない場合は最後の値を返します。
例:
result = 0 or 'No data' print(result) # 出力: No data
ここで、0
は偽であるため、or
演算子は 'No data'
を返します。これは文字列であり、ブール値ではありません。
異なるデータ型での or
演算子の動作と、そのショートサーキット評価を理解することは、効率的でバグのないPythonコードを作成するために非常に重要です。
FAQs
いいえ、非ブール値で使用すると、最初の真の値または最後の偽の値を返します。
結果がわかるとすぐに条件の評価を停止し、多くの場合、最初の条件が真の場合は2番目の条件をスキップします。
最初の値が偽の場合、or
は2番目の値を返すため、フォールバックに役立ちます。
私たちはLeapcellです。Pythonプロジェクトのホスティングに最適です。
Leapcellは、ウェブホスティング、非同期タスク、Redisのための次世代のサーバーレスプラットフォームです:
多言語サポート
- Node.js、Python、Go、またはRustで開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に応じてのみ支払い - リクエストも、費用もかかりません。
他に類を見ない費用対効果
- アイドル料金なしの従量課金制。
- 例:$25で、平均応答時間60msで694万リクエストをサポートします。
合理化された開発者エクスペリエンス
- 楽なセットアップのための直感的なUI。
- 完全に自動化されたCI/CDパイプラインとGitOps統合。
- 実用的な洞察のためのリアルタイムのメトリックとロギング。
簡単なスケーラビリティと高性能
- 簡単な高並行性を処理するための自動スケーリング。
- 運用上のオーバーヘッドはゼロ - 構築に集中するだけです。
詳細については、ドキュメントをご覧ください!
Xでフォローしてください: @LeapcellHQ