メインコンテンツへスキップ
Lesson2 / 5

比較演算子 - 値を比べる

目次

1. このレッスンで学ぶこと

  • 比較演算子とは何か
  • 6つの比較演算子の使い方
  • 比較演算子と条件分岐の組み合わせ
  • 文字列やリストの比較

2. 比較演算子とは

比較演算子は、2つの値を比べて、その結果を真(True)または偽(False)で返す記号です。

Pythonの比較演算子一覧

演算子名前意味結果
==等しい左右が等しい5 == 5True
!=等しくない左右が異なる5 != 3True
>より大きい左が右より大きい5 > 3True
<より小さい左が右より小さい5 < 3False
>=以上左が右以上5 >= 5True
<=以下左が右以下5 <= 3False

比較演算子の特徴

  • 比較結果は必ずTrueFalse(ブール型)
  • 数値、文字列、リストなど様々な型で使える
  • 条件分岐(if文)で頻繁に使う
  • 複数の比較を組み合わせられる

簡単な例

Python
# 基本的な比較
print(10 == 10)  # True(等しい)
print(10 != 5)   # True(異なる)
print(10 > 5)    # True(大きい)
print(10 < 5)    # False(小さくない)

3. なぜ比較演算子が必要なのか?

プログラムでは、「条件を満たしているか」を判断する場面が多くあります。

Python
age = 18

# 18歳以上かチェック
if age >= 18:
    print("成人です")
else:
    print("未成年です")

比較演算子を使うことで、値の大小や一致を判定し、プログラムの動作を変えられます。

💡 豆知識: 比較演算子は「関係演算子」とも呼ばれます。2つの値の関係(大きい、小さい、等しい)を調べるため、この名前が付いています。


4. 基本的な比較演算子

等しい(==)

機能: 左右の値が等しいかを判定します。

Python
# 数値の比較
print(5 == 5)    # True
print(5 == 3)    # False

# 変数の比較
age = 20
print(age == 20)  # True
print(age == 18)  # False

# 文字列の比較
name = "太郎"
print(name == "太郎")  # True
print(name == "花子")  # False

注意: 等号は2つ(==)です。代入の=と混同しないように。

用途: 値の一致確認、条件分岐


等しくない(!=)

機能: 左右の値が等しくないかを判定します。

Python
# 基本的な使い方
print(5 != 3)    # True(異なる)
print(5 != 5)    # False(同じ)

# パスワードチェック
password = "abc123"
print(password != "")  # True(空でない)

# 状態チェック
status = "error"
if status != "success":
    print("エラーが発生しました")

用途: 不一致の確認、エラーチェック


より大きい(>)

機能: 左の値が右の値より大きいかを判定します。

Python
# 数値の比較
print(10 > 5)   # True
print(5 > 10)   # False
print(5 > 5)    # False(等しい場合はFalse)

# 年齢制限
age = 25
if age > 18:
    print("成人向けコンテンツを表示")

# 点数判定
score = 85
if score > 80:
    print("優秀です")

用途: 大小比較、閾値判定


より小さい(<)

機能: 左の値が右の値より小さいかを判定します。

Python
# 基本的な使い方
print(5 < 10)   # True
print(10 < 5)   # False
print(5 < 5)    # False

# 在庫チェック
stock = 3
if stock < 5:
    print("在庫が少なくなっています")

# 温度チェック
temperature = 10
if temperature < 15:
    print("寒いです")

用途: 下限チェック、警告判定


以上(>=)

機能: 左の値が右の値以上(等しいまたは大きい)かを判定します。

Python
# 基本的な使い方
print(10 >= 5)   # True
print(5 >= 10)   # False
print(5 >= 5)    # True(等しい場合もTrue)

# 合格判定
score = 60
if score >= 60:
    print("合格")
else:
    print("不合格")

# 年齢確認
age = 18
if age >= 18:
    print("成人です")

用途: 最低基準の確認、資格判定


以下(<=)

機能: 左の値が右の値以下(等しいまたは小さい)かを判定します。

Python
# 基本的な使い方
print(5 <= 10)   # True
print(10 <= 5)   # False
print(5 <= 5)    # True

# 制限チェック
file_size = 5  # MB
if file_size <= 10:
    print("アップロード可能です")

# 割引判定
age = 12
if age <= 12:
    print("子供料金が適用されます")

用途: 上限チェック、範囲判定


5. 範囲の判定

チェーン比較

機能: 複数の比較を連結して範囲を判定します。

Python
# 範囲チェック(18歳以上65歳未満)
age = 30
if 18 <= age < 65:
    print("労働年齢です")

# 通常の書き方と比較
if age >= 18 and age < 65:
    print("労働年齢です")  # 同じ意味

# 点数の範囲
score = 75
if 70 <= score <= 79:
    print("B評価")

# 温度の範囲
temp = 25
if 20 <= temp <= 28:
    print("快適な温度です")

書き方: 下限 <= 値 < 上限

用途: 範囲判定、グレード分け


6. 文字列の比較

文字列の等価比較

Python
# 大文字小文字を区別
print("Hello" == "hello")  # False

# 完全一致
print("Python" == "Python")  # True

# 空文字列チェック
text = ""
if text == "":
    print("空です")

# 入力チェック
user_input = "yes"
if user_input == "yes":
    print("処理を続行します")

文字列の辞書順比較

Python
# アルファベット順
print("apple" < "banana")  # True
print("zebra" > "apple")   # True

# 日本語の比較(Unicodeコード順)
print("あ" < "い")  # True
print("山田" < "田中")  # False

注意: 文字列の<>は辞書順(Unicode順)で比較されます。


7. リストの比較

Python
# リストの等価比較
list1 = [1, 2, 3]
list2 = [1, 2, 3]
list3 = [3, 2, 1]

print(list1 == list2)  # True(内容が同じ)
print(list1 == list3)  # False(順序が違う)

# 要素ごとの辞書順比較
print([1, 2, 3] < [1, 2, 4])  # True
print([1, 2, 3] < [1, 3, 0])  # True

8. 具体例

例1: 成績評価システム

Python
score = 85

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "F"

print(f"点数: {score}, 評価: {grade}")

例2: 料金計算(年齢別)

Python
age = 15

if age < 6:
    price = 0  # 未就学児無料
elif age < 12:
    price = 500  # 小学生
elif age < 18:
    price = 800  # 中高生
elif age < 65:
    price = 1200  # 大人
else:
    price = 600  # 高齢者割引

print(f"{age}歳: {price}円")

例3: 営業時間チェック

Python
hour = 14  # 14時

# 営業時間: 9時〜18時
if 9 <= hour < 18:
    print("営業中")
else:
    print("営業時間外")

# 詳細判定
if hour < 9:
    print("開店前")
elif hour < 18:
    print("営業中")
else:
    print("閉店")

9. 練習問題

問題1(基礎)⭐☆☆

変数temperatureに気温が入っています。25度以上なら「暑い」、25度未満なら「涼しい」と表示してください。

💡 ヒント

>= または < を使います。

✅ 解答例
Python
temperature = 28

if temperature >= 25:
    print("暑い")
else:
    print("涼しい")

実行結果:

暑い

解説: >= は「以上」を意味し、等しい場合も含みます。


問題2(基礎)⭐☆☆

2つの数値を比較して、大きい方を表示してください。

💡 ヒント

> で大小を比較します。

✅ 解答例
Python
a = 10
b = 15

if a > b:
    print(f"大きい方: {a}")
else:
    print(f"大きい方: {b}")

実行結果:

大きい方: 15

解説: a > b が真ならa、偽ならbが大きい方です。


問題3(応用)⭐⭐☆

点数が0〜100の範囲に入っているか確認し、範囲外なら「無効な点数」と表示してください。

💡 ヒント

チェーン比較 0 <= score <= 100 を使います。

✅ 解答例
Python
score = 85

if 0 <= score <= 100:
    print(f"点数: {score}点")
else:
    print("無効な点数")

# 範囲外の例
score2 = 150
if 0 <= score2 <= 100:
    print(f"点数: {score2}点")
else:
    print("無効な点数")

実行結果:

点数: 85点
無効な点数

解説: チェーン比較で範囲判定ができます。


10. まとめ

このレッスンでは、比較演算子を使った条件判定の基本を学びました。

  • 比較演算子は、式を True / False で評価するために使います。
  • === の役割の違いを理解し、代入と比較を正しく使い分けられます。
  • >, <, >=, <= を使って、大小比較や範囲判定ができます。
  • チェーン比較を使うことで、範囲チェックを簡潔に書けます。
  • 型や小数誤差の影響を意識して、意図した比較式を書くことが重要です。