Pythonのorによる論理和の使い方と条件分岐での活用方法をわかりやすく解説

スポンサーリンク
スポンサーリンク

orの概要

論理和(ブール演算) Python予約語

or

概要 or は、2つの条件のいずれかが True の場合に全体を True とする論理演算子(ブール演算子)です。

わかりやすく説明 or は「○○または△△が成り立つなら、処理を実行する」という意味を持ちます。例えば、「ユーザーが管理者である、またはログインしている場合」などの条件判定に使用できます。

  • or は、いずれかの条件が True なら全体が True になります。
  • 条件分岐やループで使用され、複数の条件をまとめる際に役立ちます。
  • 短絡評価(ショートサーキット評価)が行われ、最初に True になった時点で評価を終了します。

orの基本的な使い方

以下の例では、2つの条件のうち1つでも成立すれば処理を実行します。

# or を使った条件分岐
is_admin = True
is_logged_in = False

if is_admin or is_logged_in:
    print("管理画面にアクセスできます")
  • is_adminTrue のため、or により全体が True になります。
  • 「管理画面にアクセスできます」と表示されます。

orを使った複数条件の判定

2つの条件のうちどちらかが成立すれば処理を実行する例です。

# いずれかの条件が成立すれば処理を実行
age = 17
has_permission = True

if age >= 18 or has_permission:
    print("このコンテンツにアクセスできます")
  • 年齢が18歳未満(age >= 18False)。
  • ただし、has_permissionTrue のため、全体は True になります。

orを使ったデフォルト値の設定

or はデフォルト値を設定する際にも利用できます。

# or を使ったデフォルト値の設定
username = "" or "ゲスト"
print(username)  # ゲスト
  • 左側の値("")が False(空文字は False と評価される)。
  • そのため、右側の「ゲスト」が代入される。

orの短絡評価(ショートサーキット評価)

or は最初に True になった時点で評価を終了します。

# or の短絡評価
def check():
    print("check() が実行されました")
    return True

result = True or check()
print(result)  # True (check() は実行されない)
  • 最初の True で評価が終了するため、check() は実行されません。

orを使ったリストのチェック

リストの要素が特定の値を含んでいるかを判定する例です。

# or を使ったリストの要素チェック
fruits = ["りんご", "バナナ", "オレンジ"]

if "いちご" in fruits or "バナナ" in fruits:
    print("指定されたフルーツが見つかりました")
  • 「いちご」はリストにないが、「バナナ」があるため or により全体が True となる。

orの注意点

  • 短絡評価が行われる: 最初に True が見つかると、残りの条件は評価されません。
  • 数値と組み合わせると、0 を False として扱う: 0 or 100100 になります。
  • 文字列やリストの空チェックに使える: or を使うことで、空の値にデフォルト値を設定できます。

orのよくある質問

Q: or を使うときにカッコ(括弧)を付けるべき?
A: 複雑な条件ではカッコを付けると可読性が向上します(例: if (a > 5 or b < 10) and c == 3:)。
Q: or の短絡評価を利用するメリットは?
A: 計算コストの高い処理を無駄に実行しないようにでき、処理速度が向上します。
Q: 数値で or を使うとどうなる?
A: 0 or 1010 になります(0False として評価されるため)。

まとめ

or は、2つ以上の条件のいずれかが True なら全体を True にする論理演算子です。

  • 複数の条件を組み合わせる際に便利。
  • 短絡評価により、不要な処理をスキップできる。
  • デフォルト値の設定やリストの要素チェックにも利用可能。

適切に or を活用し、シンプルで効率的な条件判定を行いましょう。