Pythonの複数条件の書き方!and・or・notの使い方を解説
生徒
「Pythonで条件をいくつか組み合わせて判断することってできますか?」
先生
「はい、Pythonではandやor、notというキーワードを使って、複数の条件を組み合わせることができますよ。」
生徒
「でも、それって難しそうですね…。どうやって使うんですか?」
先生
「では、ひとつずつ分かりやすく解説していきましょう!」
1. Pythonの条件式とは?
Pythonでは、ある条件を満たすかどうかを判断する「条件式(じょうけんしき)」という書き方があります。例えば、年齢が20歳以上かどうかをチェックしたいときは、次のように書きます。
age = 20
if age >= 20:
print("成人です。")
このように、if文と比較演算子(たとえば>=や==など)を使って条件を判断します。
2. 複数の条件を組み合わせたいときは?
現実の場面では、「年齢が20歳以上で、かつ学生である」など、2つ以上の条件を同時に判断したいことがあります。そんなときに使うのが、and、or、notです。
3. andの使い方:「かつ」の意味
andは、「どちらの条件も正しいときに、全体として正しい」と判断します。日本語でいう「かつ」と同じ意味です。
たとえば、「20歳以上かつ学生である」場合にだけメッセージを表示するには、次のように書きます。
age = 22
is_student = True
if age >= 20 and is_student:
print("成人の学生です。")
成人の学生です。
この例では、age >= 20とis_studentの両方がTrue(真)であるため、条件が成立しています。
4. orの使い方:「または」の意味
orは、「どちらか一方でも正しければ、全体として正しい」と判断します。日本語でいう「または」と同じ意味です。
たとえば、「20歳以上または学生である」人にメッセージを出す場合は、こう書きます。
age = 17
is_student = True
if age >= 20 or is_student:
print("20歳以上または学生です。")
20歳以上または学生です。
この場合、age >= 20はFalseですが、is_studentがTrueなので、全体として条件がTrueになります。
5. notの使い方:「〜ではない」の意味
notは、条件の意味を反対にします。つまり、「〜ではない」という判断ができます。
たとえば、「学生ではない人」にメッセージを出すには、次のように書きます。
is_student = False
if not is_student:
print("学生ではありません。")
学生ではありません。
not is_studentは、is_studentがFalseのときにTrueとなります。
6. and・or・notを組み合わせて使う
複数の条件を組み合わせて使うこともできます。たとえば、「20歳以上かつ学生ではない」人をチェックするには、次のように書きます。
age = 25
is_student = False
if age >= 20 and not is_student:
print("成人で学生ではありません。")
成人で学生ではありません。
このように、and、or、notを上手に使うことで、複雑な条件もシンプルに書けるようになります。
7. 比較演算子と一緒に使うことが多い
複数条件を使うときは、たいていの場合、比較演算子(大なり>、小なり<、等しい==など)と一緒に使います。
たとえば、ある数が0より大きくて100未満かどうかを調べるには、次のように書きます。
number = 50
if number > 0 and number < 100:
print("0より大きく、100未満です。")
0より大きく、100未満です。
このように、数の範囲を判断するときにもandはとても便利です。
8. 条件式の優先順位に注意しよう
複数の条件を組み合わせるときには、計算と同じように優先順位(ゆうせんじゅんい)があります。notが最優先で、次にand、最後にorです。
ですが、迷ったときや読みやすくしたいときはかっこを使いましょう。かっこを使うことで、どの部分を先に評価するかを明確にできます。
age = 18
is_student = False
if (age >= 18 and age < 25) or is_student:
print("条件を満たしています。")
条件を満たしています。
この例では、「年齢が18歳以上25歳未満」または「学生」である人が対象になります。
9. 実生活に例えるとどうなる?
例えば、遊園地の入場ルールを考えてみましょう。
- 12歳以下は保護者と一緒なら入場OK
- 13歳以上は1人でも入場OK
このようなルールをPythonで表現することもできます。
age = 10
with_parent = True
if age >= 13 or (age <= 12 and with_parent):
print("入場できます。")
else:
print("入場できません。")
入場できます。
このように、現実の判断ルールもPythonの条件式で表現できます。
まとめ
Pythonの複数条件と論理演算子の基本を振り返ろう
この記事では、Pythonで複数の条件を組み合わせて判断する方法として、 and・or・notという論理演算子の使い方を中心に解説してきました。 プログラミングでは、単純に一つの条件だけを判定する場面よりも、 「いくつかの条件を同時に満たすか」「どれか一つでも当てはまるか」 といった複雑な判断を求められる場面が非常に多くあります。 Pythonの条件式は、このような現実的な判断をそのままコードで表現できる点が大きな特徴です。
まず基本となるのが and の考え方です。
and は「すべての条件が正しいときだけTrueになる」という性質を持っており、
日本語の「かつ」と同じ意味で使われます。
年齢と立場、数値の範囲、フラグの組み合わせなど、
複数の条件を同時に満たす必要がある場合に欠かせない存在です。
if文と組み合わせることで、より厳密な条件分岐を実現できます。
orとnotを理解すると条件分岐が一気に楽になる
次に重要なのが or です。
or は「どちらか一方でも条件を満たしていればTrueになる」という特徴を持っています。
日本語の「または」と同じ感覚で使えるため、
条件の幅を広げたいときにとても便利です。
年齢制限の緩和や、複数の選択肢のいずれかに当てはまるかどうかを判断する際によく使われます。
そして not は、条件を反転させる役割を持っています。
TrueをFalseに、FalseをTrueにひっくり返すため、
「〜ではない」という否定条件をシンプルに書くことができます。
フラグ変数や状態管理と組み合わせることで、
条件式をより直感的に表現できるようになります。
notを上手に使えるようになると、無駄に複雑な比較を書かずに済むようになります。
複数条件を組み合わせるときの考え方と注意点
and・or・notは、それぞれ単体でも使えますが、 実際のプログラムでは組み合わせて使うことがほとんどです。 その際に重要なのが、条件式の優先順位を意識することです。 Pythonでは、notが最も優先され、次にand、最後にorが評価されます。 ただし、優先順位をすべて暗記する必要はありません。 読みやすさや安全性を重視するなら、かっこを使って明示的に条件のまとまりを示すのがおすすめです。
条件式は「正しく動くこと」だけでなく、「読みやすいこと」も非常に重要です。 Pythonは可読性を重視する言語なので、 将来コードを見返したときや、他の人が読んだときに理解しやすい条件式を書く意識を持ちましょう。 無理に一行で詰め込まず、分かりやすい構造を優先することが、 バグを防ぎ、保守しやすいコードにつながります。
複数条件を使ったサンプルプログラム
ここで、and・or・notを組み合わせた、実践的なサンプルプログラムを見てみましょう。 年齢と学生かどうかの情報をもとに、表示内容を切り替える例です。
age = int(input("年齢を入力してください:"))
is_student = input("学生ですか?(yes/no):") == "yes"
if age >= 20 and not is_student:
print("成人で社会人です。")
elif age >= 20 and is_student:
print("成人の学生です。")
else:
print("未成年です。")
このように、複数条件を使うことで、現実に近い判断ロジックをPythonで表現できます。 条件式を自在に組み立てられるようになると、 Pythonプログラミングの理解が一段と深まり、できることの幅が大きく広がります。
生徒「andやorを使うと、現実のルールをそのまま書ける感じがしますね。」
先生「そうだね。条件を組み合わせることで、判断がとても自然になるんだ。」
生徒「notを使うと、否定の条件もスッキリ書けるのが分かりました。」
先生「いいところに気づいたね。読みやすさを意識するのが大事だよ。」
生徒「かっこを使えば、複雑な条件も安心して書けそうです。」
先生「その通り。複数条件はPythonの基礎力を高める重要なポイントだから、たくさん練習していこう。」