Pythonで複数の条件を組み合わせる方法!and・or・notの使い方
生徒
「Pythonで“この条件とあの条件が両方とも正しいとき”だけ処理をしたいんですが、どう書けばいいですか?」
先生
「その場合は『and』『or』『not』という論理演算子を使います。条件を組み合わせるときにとても便利ですよ。」
生徒
「それって難しくないですか?わかりやすく教えてください!」
先生
「大丈夫!日常の例を使って説明するので、きっとすぐ理解できますよ。」
1. Pythonの論理演算子とは?
Pythonで複数の条件を同時にチェックしたいときには、論理演算子というものを使います。具体的には、以下の3つがあります。
- and: 両方の条件が成り立つときに「True」になる
- or: どちらか一方でも成り立てば「True」になる
- not: 条件を反転する(True → False、False → True)
これらは、if文やwhile文などで条件を組み合わせるときに非常によく使います。
2. andの使い方:両方の条件が必要なとき
andは「〜かつ〜」という意味です。たとえば、年齢が20歳以上で、会員登録も済んでいる人だけを対象にする場合、次のように書きます。
age = 22
is_member = True
if age >= 20 and is_member:
print("サービスを利用できます。")
サービスを利用できます。
このように、両方の条件がTrueのときだけ処理が実行されます。
3. orの使い方:どちらか1つでOKなとき
orは「〜または〜」という意味です。どちらか一方でも条件に当てはまればOKというときに使います。
has_coupon = False
is_premium_user = True
if has_coupon or is_premium_user:
print("割引が適用されます。")
割引が適用されます。
どちらかがTrueであれば、if文の中の処理が実行されます。
4. notの使い方:条件を反転したいとき
notは条件をひっくり返す(反転する)演算子です。
たとえば、「ログインしていない人」にだけ注意メッセージを出す場合は次のように書けます。
is_logged_in = False
if not is_logged_in:
print("ログインしてください。")
ログインしてください。
not False は Trueになるので、処理が実行されます。
5. 複数条件を組み合わせた例:入場チェック
次は少し応用です。「年齢が18歳以上」かつ「チケットを持っている」人だけが入場できるようにしたい場合は、次のようにします。
age = 19
has_ticket = True
if age >= 18 and has_ticket:
print("入場できます。")
else:
print("入場できません。")
入場できます。
このように、andとelseを組み合わせて条件に応じた分岐もできます。
6. orとnotを使って柔軟な条件設定
「18歳未満」または「ログインしていない人」には警告を出す、というようなチェックもできます。
age = 17
is_logged_in = False
if age < 18 or not is_logged_in:
print("ご利用条件を満たしていません。")
ご利用条件を満たしていません。
orとnotをうまく使えば、柔軟な条件判定が可能です。
7. 複雑な条件にはカッコを使って整理しよう
複数の論理演算子を組み合わせるときは、カッコ( )を使うとわかりやすくなります。
age = 20
is_member = False
has_coupon = True
if (age >= 18 and is_member) or has_coupon:
print("特典が利用できます。")
特典が利用できます。
カッコがないとPythonはどこからどこまでがひとかたまりか分かりにくくなるので、見やすさのためにもカッコを使いましょう。
8. and・or・notを使うときの注意点
and・or・notはとても便利ですが、条件の意味を正しく理解していないと逆の結果になることもあります。
特に、notを使うときは文の意味が逆になるので、注意が必要です。
たとえばif not is_memberと書くと、「会員でない場合」だけが条件に当てはまります。
日本語に置き換えて声に出して確認すると、ミスが減って理解も深まります。
9. Python初心者におすすめの練習法
論理演算子の練習には、「〇歳以上でチケットを持っていれば◯◯」などのルールを自分で作ってみるのが効果的です。
また、自分や友達の情報を使ったシミュレーションを作ってみるのも楽しくておすすめです。
and・or・notの使い方に慣れてくると、複雑な判断もPythonで簡単にできるようになりますよ!
まとめ
Pythonで複数条件を扱うための基本をしっかり振り返ろう
この記事では、Pythonで複数の条件を組み合わせて判定するために欠かせない、 and・or・notという三つの論理演算子について、初心者向けに丁寧に解説してきました。 プログラミングにおいて条件分岐は非常に重要であり、現実のルールや判断をコードに落とし込むための基礎になります。 年齢制限のチェック、ログイン状態の確認、会員かどうかの判定、割引や特典の適用条件など、 実際のWebアプリやシステム開発では、複数の条件を同時に確認する場面が数多く登場します。 そのため、Pythonの論理演算子を正しく理解することは、実用的なプログラムを書くための大きな一歩です。
andは「すべての条件が成り立つときだけ処理を行う」という場面で使われます。
「年齢が十八歳以上で、なおかつ会員である場合」や「ログイン済みで、かつ権限を持っている場合」など、
条件が一つでも欠けると処理してはいけないケースに非常に向いています。
Python初心者のうちは、if文の中に一つの条件しか書けないように感じるかもしれませんが、
andを使うことで、現実のルールに近い判断をコードとして表現できるようになります。
一方で、orは「どちらか一方でも条件を満たせばよい」という柔軟な判定に使われます。
クーポンを持っている場合や、プレミアムユーザーである場合など、
複数の救済条件を用意したいときに非常に便利です。
orを使いこなせるようになると、ユーザーにとって優しい条件設定や、
実用的な分岐処理を書けるようになります。
さらにnotは、条件を反転させるための演算子です。
「ログインしていない人」「会員ではない人」「条件を満たしていない場合」など、
否定の条件をシンプルに書けるのが特徴です。
ただし、notは意味が逆になるため、慣れないうちは混乱しやすいポイントでもあります。
そのため、コードを書くときには日本語に置き換えて読み上げてみると、
条件の意味を正しく理解しやすくなります。
まとめとしてのサンプルプログラム
ここで、and・or・notを組み合わせた、実践的で分かりやすいサンプルプログラムを確認してみましょう。 条件を整理するためにカッコを使うことで、処理の意味が一目で分かるようになります。
age = 20
is_member = False
has_coupon = True
if (age >= 18 and is_member) or has_coupon:
print("サービスを利用できます。")
else:
print("利用条件を満たしていません。")
この例では、「年齢が条件を満たしていて会員である」もしくは「クーポンを持っている」場合に、 サービスを利用できるという判定を行っています。 論理演算子とカッコを組み合わせることで、複雑な条件でも読みやすく整理されたコードになります。 Pythonでは、このように条件を段階的に考えながら書くことが、バグを減らすための重要なポイントです。
and・or・notを使いこなせるようになると、if文やwhile文の表現力が一気に広がります。 単純な条件分岐だけでなく、現実世界の細かなルールや例外処理をコードとして表現できるようになるため、 Pythonプログラミングの理解が一段深まったと感じられるでしょう。 今回学んだ内容は、今後関数やクラス、Webアプリ開発を学ぶ際にも必ず役立つ基礎知識です。
生徒
「andとorの違いが、日常の例と一緒に説明されていたので、とても分かりやすかったです。 条件を組み合わせるのが少し楽しくなってきました。」
先生
「それは良いですね。論理演算子は、プログラムの判断力を高める大切な要素です。 最初は難しく感じても、使ううちに自然と身についていきますよ。」
生徒
「notを使うときは、日本語で意味を確認すると間違えにくい、というのが特に印象に残りました。」
先生
「その通りです。条件分岐は、頭の中で整理しながら書くことが大切です。 カッコを使って整理する習慣も、これから意識していきましょう。」
生徒
「これからは、年齢チェックやログイン判定のような練習問題を自分でも作ってみます。」
先生
「とても良い学習方法ですね。and・or・notを自在に使えるようになれば、 Pythonで書けるプログラムの幅が一気に広がりますよ。」