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



