カテゴリ: Python 更新日: 2025/12/12

Pythonの複数条件の書き方!and・or・notの使い方を解説

Pythonの複数条件の書き方!and・or・notの使い方を解説
Pythonの複数条件の書き方!and・or・notの使い方を解説

先生と生徒の会話形式で理解しよう

生徒

「Pythonで条件をいくつか組み合わせて判断することってできますか?」

先生

「はい、Pythonではandornotというキーワードを使って、複数の条件を組み合わせることができますよ。」

生徒

「でも、それって難しそうですね…。どうやって使うんですか?」

先生

「では、ひとつずつ分かりやすく解説していきましょう!」

1. Pythonの条件式とは?

1. Pythonの条件式とは?
1. Pythonの条件式とは?

Pythonでは、ある条件を満たすかどうかを判断する「条件式(じょうけんしき)」という書き方があります。例えば、年齢が20歳以上かどうかをチェックしたいときは、次のように書きます。


age = 20
if age >= 20:
    print("成人です。")

このように、if文と比較演算子(たとえば>===など)を使って条件を判断します。

2. 複数の条件を組み合わせたいときは?

2. 複数の条件を組み合わせたいときは?
2. 複数の条件を組み合わせたいときは?

現実の場面では、「年齢が20歳以上で、かつ学生である」など、2つ以上の条件を同時に判断したいことがあります。そんなときに使うのが、andornotです。

3. andの使い方:「かつ」の意味

3. andの使い方:「かつ」の意味
3. andの使い方:「かつ」の意味

andは、「どちらの条件も正しいときに、全体として正しい」と判断します。日本語でいう「かつ」と同じ意味です。

たとえば、「20歳以上かつ学生である」場合にだけメッセージを表示するには、次のように書きます。


age = 22
is_student = True

if age >= 20 and is_student:
    print("成人の学生です。")

成人の学生です。

この例では、age >= 20is_studentの両方がTrue(真)であるため、条件が成立しています。

4. orの使い方:「または」の意味

4. orの使い方:「または」の意味
4. orの使い方:「または」の意味

orは、「どちらか一方でも正しければ、全体として正しい」と判断します。日本語でいう「または」と同じ意味です。

たとえば、「20歳以上または学生である」人にメッセージを出す場合は、こう書きます。


age = 17
is_student = True

if age >= 20 or is_student:
    print("20歳以上または学生です。")

20歳以上または学生です。

この場合、age >= 20Falseですが、is_studentTrueなので、全体として条件がTrueになります。

5. notの使い方:「〜ではない」の意味

5. notの使い方:「〜ではない」の意味
5. notの使い方:「〜ではない」の意味

notは、条件の意味を反対にします。つまり、「〜ではない」という判断ができます。

たとえば、「学生ではない人」にメッセージを出すには、次のように書きます。


is_student = False

if not is_student:
    print("学生ではありません。")

学生ではありません。

not is_studentは、is_studentFalseのときにTrueとなります。

6. and・or・notを組み合わせて使う

6. and・or・notを組み合わせて使う
6. and・or・notを組み合わせて使う

複数の条件を組み合わせて使うこともできます。たとえば、「20歳以上かつ学生ではない」人をチェックするには、次のように書きます。


age = 25
is_student = False

if age >= 20 and not is_student:
    print("成人で学生ではありません。")

成人で学生ではありません。

このように、andornotを上手に使うことで、複雑な条件もシンプルに書けるようになります。

7. 比較演算子と一緒に使うことが多い

7. 比較演算子と一緒に使うことが多い
7. 比較演算子と一緒に使うことが多い

複数条件を使うときは、たいていの場合、比較演算子(大なり>、小なり<、等しい==など)と一緒に使います。

たとえば、ある数が0より大きくて100未満かどうかを調べるには、次のように書きます。


number = 50

if number > 0 and number < 100:
    print("0より大きく、100未満です。")

0より大きく、100未満です。

このように、数の範囲を判断するときにもandはとても便利です。

8. 条件式の優先順位に注意しよう

8. 条件式の優先順位に注意しよう
8. 条件式の優先順位に注意しよう

複数の条件を組み合わせるときには、計算と同じように優先順位(ゆうせんじゅんい)があります。notが最優先で、次にand、最後にorです。

ですが、迷ったときや読みやすくしたいときはかっこを使いましょう。かっこを使うことで、どの部分を先に評価するかを明確にできます。


age = 18
is_student = False

if (age >= 18 and age < 25) or is_student:
    print("条件を満たしています。")

条件を満たしています。

この例では、「年齢が18歳以上25歳未満」または「学生」である人が対象になります。

9. 実生活に例えるとどうなる?

9. 実生活に例えるとどうなる?
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の基礎力を高める重要なポイントだから、たくさん練習していこう。」

カテゴリの一覧へ
新着記事
New1
Flask
Flaskのログレベル(DEBUG/INFO/WARNING/ERROR)を使い分ける方法を完全ガイド!
New2
Python
Pythonのfrozensetとは?ミュータブルなsetとの違いをわかりやすく解説
New3
Python
Pythonでセットを活用してデータをフィルタリングする方法!初心者でもわかるセットの基本と使い方
New4
Python
Pythonの辞書操作まとめ!初心者が知っておくべき便利ワザ集
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.2
Java&Spring記事人気No2
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.3
Java&Spring記事人気No3
Flask
FlaskアプリのSECRET_KEYの設定方法を完全ガイド!初心者でもわかるセキュリティ対策
No.4
Java&Spring記事人気No4
Django
Djangoモデル入門|初心者が最初に知るべきORMの基本操作
No.5
Java&Spring記事人気No5
Flask
Flaskで非同期処理を成功させるベストプラクティス集|初心者でも失敗しない考え方
No.6
Java&Spring記事人気No6
Python
Pythonのリストを分割する方法を完全ガイド!初心者でもわかるスライス・split・itertoolsの使い方
No.7
Java&Spring記事人気No7
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.8
Java&Spring記事人気No8
Flask
Flaskのログをファイルに保存する方法!初心者でもわかる設定手順を徹底解説