if文に慣れてくると、条件を1つだけでなく組み合わせたくなります。
そのときに使うのが and、or、not です。
この記事では、3つの役割を初心者向けに整理します。

この記事でわかること

  • and、or、not の基本の意味
  • 条件を組み合わせるときの考え方
  • not で条件を反転させる方法
  • よくある書き間違いの注意点

完成コード(まず見てみよう)

score = 78
is_member = True

if score >= 70 and is_member:
    print("特典の対象です")
elif score >= 70 and not is_member:
    print("合格ですが特典は対象外です")
else:
    print("基準に届いていません")

このコードはそのまま実行できます。
scoreis_member の値を変えると、結果の違いを確認できます。

テーマの説明(やさしく)

and は「両方とも当てはまるとき」です。
2つ以上の条件がすべて True なら、全体が True になります。

or は「どちらかが当てはまるとき」です。
1つでも True があれば、全体が True になります。

not は「反転」です。
TrueFalse に、FalseTrue に変えます。

if文では、これらを使って条件を細かく作れます。

具体例・補足説明

まずは and の例です。

temperature = 26
is_sunny = True

if temperature >= 25 and is_sunny:
    print("外で洗濯物を干します")

次に or の例です。

is_holiday = False
finished_work = True

if is_holiday or finished_work:
    print("映画を見ます")

最後に not の例です。

is_raining = False

if not is_raining:
    print("傘なしで出かけられます")

not is_raining は「雨ではない」という意味になります。

おじちくワンポイント

最初は、条件を日本語に読み替えると理解しやすいです。
and は「かつ」、or は「または」、not は「ではない」と読むと混乱を減らせます。
条件が長くなるときは、丸かっこで区切ると読みやすくなります。

よくある勘違い・注意点

  • andor を混ぜるときは、意図した順で判定されるか確認する
  • not の付ける位置を間違えると、逆の結果になる
  • = は代入、== は比較なので使い分ける

練習問題

問題1
変数 age = 20has_ticket = True を使って、18歳以上かつチケットありなら「入場できます」と表示するコードを書いてみましょう。

問題2
変数 is_weekend = Falseis_holiday = True を使って、土日または祝日なら「休みです」と表示するコードを書いてみましょう。
さらに not を使って「平日です」と表示する条件も作ってみましょう。

まとめ

  • and はすべての条件が成り立つときに使う
  • or はどれか1つでも成り立つときに使う
  • not は条件を反転させるときに使う
  • 条件は日本語で読み替えて確認するとミスを減らせる

次の記事