Pythonの「elif」と「and/or/not」でプログラムに判断力をつける

プログラムに「複雑な判断」をさせる:条件分岐の応用

前回はシンプルな if 文を学びましたが、実際の開発では「もし〜ならA、そうでなくて〜ならB、どちらでもなければC」といった、より細かな条件分岐が必要になります。

今回は、条件を増やすための elif と、条件を組み合わせる and / or / not についてまとめます。


複数の条件を指定する「elif」

if 文の条件が成り立たなかった場合に、別の条件をさらにチェックしたいときに使うのが elif です。

  • if: もし〜なら(最初の条件)
  • elif: (上の条件に当てはまらず)もし〜なら ※何個でも追加可能!
  • else: どれにも当てはまらなければ(最後の砦)

Python

score = 75

if score >= 90:
    print("大変素晴らしいです!")
elif score >= 70:
    print("合格です!")  # 75点なのでここが実行される
else:
    print("次は頑張りましょう。")

条件を組み合わせる「論理演算子(and, or, not)」

「AかつB」「AまたはB」のように、複数の条件を1行で表現したいときは論理演算子を使います。

1. かつ(and)

すべての条件が「真(True)」のときだけ実行されます。

Python

# 10以上、かつ、20以下
if number >= 10 and number <= 20:
    print("範囲内です")

2. または(or)

どれか1つでも条件に当てはまれば実行されます。

Python

# 土曜、または、日曜
if day == "Sat" or day == "Sun":
    print("お休みです")

3. 〜ではない(not)

条件を反転させます。「〜ではない場合」という指定のときに使います。

Python

# 100ではない場合
if not score == 100:
    print("満点ではありませんでした")

まとめ:条件分岐は「優先順位」が大事

今回学んだ elif は、上から順番に判定されていくのがポイントです。

  • elifif がダメだった時の「第2、第3の選択肢」
  • and は両方、or は片方、not は打ち消し
  • 複雑な条件も、この組み合わせでスマートに表現できる!

これで、かなり「賢い」プログラムが書けるようになった気がします!


追記
notについては、「score != 100(等しくない)」という書き方とどう違うの?
notは「条件全体をひっくり返す」ときに使うと便利。

コメント

タイトルとURLをコピーしました