比較演算子・論理演算子とは?Pythonの==・and・orを初心者向けに解説

プログラミング

プログラミングでは、条件によって処理を変えるために「比較演算子」と「論理演算子」を使用します。

例えば、「テストの点数が60点以上なら合格」「18歳以上で、チケットを持っている場合だけ入場できる」といった判断をプログラムで実現するときに使います。

しかし、プログラミングを始めたばかりの人には、= と == の違いや、and と or の使い分けが難しく感じられるかもしれません。

この記事では、高校の情報Ⅰを学習している人やPython初心者向けに、比較演算子と論理演算子の基本から、条件分岐での使い方まで、実際のプログラムを使って解説します。

1. 比較演算子・論理演算子とは?

比較演算子とは、2つの値を比較するために使用する記号です。

例えば、次のPythonコードを見てみましょう。

score = 80print(score >= 60)

実行結果:

True

80は60以上なので、比較結果は True になります。

一方、論理演算子は、複数の条件を組み合わせたり、条件の真偽を反転させたりするときに使用します。

score = 80attendance = 90print(score >= 60 and attendance >= 80)

実行結果:

True

このプログラムでは、テストの点数が60点以上、かつ出席率が80%以上という2つの条件を判定しています。

どちらも成立しているため、結果は True になります。

2. TrueとFalseとは?

比較演算子や論理演算子を理解するためには、最初に True と False を覚えておきましょう。

Pythonでは、条件が成立している場合を True、成立していない場合を False で表します。

これらは真偽値(Boolean)と呼ばれます。

真偽値のイメージ

True

条件が成立

真(しん)

False

条件が不成立

偽(ぎ)

例えば、次のようになります。

print(10 > 5)print(10 < 5)print(10 == 10)

実行結果:

True
False
True

比較や論理演算の結果を使うことで、プログラムは条件に応じた処理を実行できます。

3. Pythonの比較演算子一覧

Pythonでよく使用する比較演算子は、次の6つです。

演算子意味使用例結果
==等しい10 == 10True
!=等しくない10 != 5True
>より大きい10 > 5True
<より小さい10 < 5False
>=以上10 >= 10True
<=以下10 <= 5False

これらを覚えると、テストの点数や年齢などを条件に応じて判定できるようになります。

==:等しいかどうか

2つの値が等しいかどうかを判定します。

age = 16print(age == 16)

実行結果:

True

!=:等しくないかどうか

2つの値が異なるかどうかを判定します。

age = 16print(age != 18)

実行結果:

True

>=と= は以上、<=` は以下を意味します。

score = 60print(score >= 60)print(score <= 60)

実行結果:

True
True

どちらにも60が含まれることがポイントです。

4. =と==の違い

初心者がよく間違えるのが、= と == の違いです。

Pythonでは、それぞれ役割が異なります。

記号意味例
=値を代入するscore = 80
==2つの値を比較するscore == 80

例えば、次のプログラムでは変数に80を代入しています。

score = 80

一方、次のプログラムは、変数に入っている値が80と等しいか確認します。

print(score == 80)

実行結果:

True

条件分岐のif文では、値が等しいかを調べたい場合に == を使用します。

5. 論理演算子とは?

論理演算子とは、複数の条件を組み合わせたり、条件の真偽を反転させたりするための演算子です。

Pythonでは、主に次の3種類を使用します。

演算子意味
and両方の条件が成立
or少なくとも一方の条件が成立
not条件の真偽を反転

例えば、「テストの点数が60点以上、かつ出席率が80%以上」という条件には and を使用します。

一方、「土曜日または日曜日」という条件には or を使用します。

6. andとは?両方の条件が成立する場合

and は、2つの条件が両方成立しているかどうかを判定するときに使用します。

例えば、次のプログラムを見てみましょう。

age = 18has_ticket = Trueif age >= 18 and has_ticket:    print("入場できます")else:    print("入場できません")

実行結果:

入場できます

このプログラムでは、18歳以上であり、チケットも持っているため、入場できると判定しています。

andの真理値表

条件A条件BA and B
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

and は、すべての条件が成立している場合だけ True になります。

7. orとは?どちらかの条件が成立する場合

or は、少なくとも一方の条件が成立している場合に True になる演算子です。

例えば、土曜日または日曜日なら休日と判定するプログラムを作ってみましょう。

day = "日曜日"if day == "土曜日" or day == "日曜日":    print("休日です")else:    print("平日です")

実行結果:

休日です

日曜日という条件が成立しているため、休日と判定されます。

orの真理値表

条件A条件BA or B
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

or は、両方の条件が成立していなくても、どちらか一方が成立していれば True になります。

8. notとは?条件の結果を反転する

not は、条件の真偽を反転させる演算子です。

例えば、ログインしていないユーザーにメッセージを表示するプログラムを考えてみましょう。

is_logged_in = Falseif not is_logged_in:    print("ログインしてください")

実行結果:

ログインしてください

is_logged_in は False ですが、not を付けると True に反転します。

条件notを使用した結果
TrueFalse
FalseTrue

この仕組みは、ユーザーがログインしていない場合や、必要なデータが存在しない場合などの判定に利用できます。

9. and・or・notの違いを実際に試してみよう

次の表で、それぞれの論理演算子の違いを確認できます。

論理演算子の練習

条件Aと条件Bを切り替えて、計算結果がどう変わるかを確認してみましょう。

条件A

TrueFalse

条件B

TrueFalse

A and BFalse
A or BTrue
not AFalse

この例では、AとBはいずれも真偽値です。

実際に条件を変更すると、and は両方が True の場合、or は少なくとも一方が True の場合に成立することが分かります。

10. 比較演算子と論理演算子を組み合わせる

実際のプログラムでは、比較演算子と論理演算子を組み合わせて使用することがよくあります。

例えば、テストの点数が60点以上、90点未満であるかを判定する場合です。

score = 75if score >= 60 and score < 90:    print("60点以上90点未満です")

実行結果:

60点以上90点未満です

Pythonでは、次のように比較演算子をつなげて記述することもできます。

if 60 <= score < 90:    print("60点以上90点未満です")

また、and と or を組み合わせる場合は、かっこを使って条件をまとめると、処理の意図が分かりやすくなります。

age = 17has_permission = Truehas_ticket = Trueif (age >= 18 or has_permission) and has_ticket:    print("入場できます")

このプログラムでは、18歳以上または許可を持っており、さらにチケットを持っている場合に入場できます。

11. 論理演算子でよくある間違い

特に注意したいのが、or の書き方です。

例えば、次のコードは意図した判定になりません。

day = "月曜日"if day == "土曜日" or "日曜日":    print("休日です")

Pythonでは、空でない文字列 "日曜日" は真と判定されるため、この条件は常に成立します。

正しくは、それぞれの条件を記述します。

if day == "土曜日" or day == "日曜日":    print("休日です")

また、and、or、not の優先順位にも注意しましょう。Pythonでは通常、not、and、or の順に優先されます。複雑な条件では、かっこを付けることで間違いを防ぎやすくなります。

12. 練習問題

比較演算子と論理演算子を理解できたら、実際に問題を解いてみましょう。

問題1:合格判定

点数が60点以上、出席率が80%以上なら「合格」と表示してください。scoreは75、attendanceは90とします。解答を見る

問題2:休日判定

dayが「土曜日」または「日曜日」の場合に「休日」と表示してください。解答を見る

問題3:範囲の判定

numberが10以上20以下なら「範囲内」と表示してください。numberは15とします。解答を見る

13. まとめ

比較演算子は2つの値を比較するために使用し、論理演算子は複数の条件を組み合わせたり、条件を反転させたりするために使用します。

比較演算子の ==、!=、>、<、>=、<= と、論理演算子の and、or、not は、Pythonの条件分岐を学ぶうえで重要です。

最初は簡単な条件から練習し、慣れてきたら複数の条件を組み合わせてみましょう。