<一覧に戻る

論理演算子の複数条件の組み合わせ

Pythonを使ったプログラミングでは、条件分岐(if文)を使って「ある条件を満たしたときに処理を実行する」という書き方を頻繁に行います。 しかし、現実の状況は単純な条件だけでは判断できないことが多いですよね。

例えば「年齢が18歳以上で、かつ利用許可を持っている人だけがログインできる」や「週末または祝日はお休み」など、複数の条件を組み合わせて考える必要があります。

論理演算子の概要

  • and:両方の条件が真(True)のときだけ真を返す
  • or:少なくとも一方の条件が真(True)のときに真を返す
  • not:条件の結果を反転させる(True → False、False → True)

andとorを組み合わせた複雑な条件

複数条件の組み合わせを理解するために、まずはシンプルな例を見てみましょう。

age = 25
has_permission = True

if age >= 18 and has_permission:
    print("アクセスが許可されました。")
else:
    print("アクセスが拒否されました。")

このコードは「年齢が18歳以上」かつ「許可がある」場合のみアクセスを許可しています。両方がそろわなければ条件を満たさないため、きびしい条件判定に適しています。

is_weekend = True
is_holiday = False

if is_weekend or is_holiday:
    print("今日はお休みです。")
else:
    print("今日は働かなければなりません。")

この場合は「週末である」または「祝日である」どちらかがTrueなら条件を満たします。orを使うと柔軟に条件を緩和できるのが特徴です。

現実的なルールでは、単純な and や or だけでは表せない場合があります。そのときに使えるのが、and と or の組み合わせです。 次の例では「18歳以上かつ学生である」または「会員ランクがゴールド以上」であれば割引を受けられるというルールを表現しています。

age = 20
is_student = True
membership_rank = "silver"

if (age >= 18 and is_student) or membership_rank == "gold":
    print("あなたは割引を受けることができます。")
else:
    print("割引を受けることはできません。")

このコードでは、age >= 18 and is_student が True であれば割引が適用されます。 たとえ学生でなくても、membership_rank == "gold" が True であれば割引が適用されます。

つまり、複数の条件を自由に組み合わせることで、現実のルールをそのままコードに落とし込むことが可能になります。

複雑な組み合わせ:and + or + not

実際のプログラムでは、複数の論理演算子を組み合わせることもよくあります。括弧を使って優先順位をはっきりさせることで、意図した通りの条件分岐が可能です。

# 条件を定義
temperature = 30
is_sunny = True
is_holiday = False
is_raining = False

# and, or, not を組み合わせた条件分岐
if (temperature > 25 and is_sunny) or (is_holiday and not is_raining):
    print("ビーチに行こう!")
else:
    print("今日はお家でのんびり。")

このコードでは「気温が25度より高く、かつ晴れている」または「 休日であり、なおかつ雨が降っていない場合」という条件を組み合わせています。 全体では (A and B) or (C and not D) の形になっており、どちらかの条件が真なら「ビーチに行こう!」と表示されます。

複数条件の組み合わせを使いこなすコツ

複数の条件を組み合わせるときは、以下のポイントを意識するとわかりやすいコードになります。

  • 括弧を使って条件のまとまりを明示する(可読性が上がり、誤解を防ぐ)
  • 一度に長い条件を書きすぎない(途中で変数に分けて整理すると理解しやすい)
  • True / Falseを実際に出力して確認する(初心者は特にデバッグしながら学ぶと効果的)

条件式はプログラムの流れを決める重要な部分です。しっかり理解すれば、ユーザー管理やアクセス制御、データ処理の分岐など、より実践的なプログラミングができるようになります。

まとめ

Pythonでは、and / or / not を使って複数の条件を組み合わせることで、現実に近い複雑な判断をコードで表現できる ようになります。

  • and は「両方の条件が成立」
  • or は「どちらか一方が成立」
  • not は「条件を反転」
  • 組み合わせることで柔軟な条件分岐が可能

複数条件を使ったif文は、Pythonを学ぶ上で欠かせない重要スキルです。 ぜひ自分の生活の中のルールを例にしながら、条件式を作ってみてください。

出力結果: