比較演算子 - 値を比べる
目次
このレッスンで学ぶこと
- 比較演算子とは何か
- 6つの比較演算子の使い方
- 比較演算子と条件分岐の組み合わせ
- 文字列やリストの比較
比較演算子とは
比較演算子は、2つの値を比べて、その結果を真(True)または偽(False)で返す記号です。
Pythonの比較演算子一覧
| 演算子 | 名前 | 意味 | 例 | 結果 |
|---|---|---|---|---|
== | 等しい | 左右が等しい | 5 == 5 | True |
!= | 等しくない | 左右が異なる | 5 != 3 | True |
> | より大きい | 左が右より大きい | 5 > 3 | True |
< | より小さい | 左が右より小さい | 5 < 3 | False |
>= | 以上 | 左が右以上 | 5 >= 5 | True |
<= | 以下 | 左が右以下 | 5 <= 3 | False |
比較演算子の特徴
- 比較結果は必ず
TrueかFalse(ブール型) - 数値、文字列、リストなど様々な型で使える
- 条件分岐(if文)で頻繁に使う
- 複数の比較を組み合わせられる
簡単な例
Python# 基本的な比較 print(10 == 10) # True(等しい) print(10 != 5) # True(異なる) print(10 > 5) # True(大きい) print(10 < 5) # False(小さくない)
なぜ比較演算子が必要なのか?
プログラムでは、「条件を満たしているか」を判断する場面が多くあります。
Pythonage = 18 # 18歳以上かチェック if age >= 18: print("成人です") else: print("未成年です")
比較演算子を使うことで、値の大小や一致を判定し、プログラムの動作を変えられます。
💡 豆知識: 比較演算子は「関係演算子」とも呼ばれます。2つの値の関係(大きい、小さい、等しい)を調べるため、この名前が付いています。
基本的な比較演算子
等しい(==)
機能: 左右の値が等しいかを判定します。
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("子供料金が適用されます")
用途: 上限チェック、範囲判定
範囲の判定
チェーン比較
機能: 複数の比較を連結して範囲を判定します。
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("快適な温度です")
書き方: 下限 <= 値 < 上限
用途: 範囲判定、グレード分け
文字列の比較
文字列の等価比較
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順)で比較されます。
リストの比較
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
具体例
例1: 成績評価システム
Pythonscore = 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: 料金計算(年齢別)
Pythonage = 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: BMI判定
Pythonweight = 65 height = 1.7 bmi = weight / height ** 2 print(f"BMI: {bmi:.1f}") if bmi < 18.5: print("低体重") elif bmi < 25: print("普通体重") elif bmi < 30: print("肥満(1度)") else: print("肥満(2度以上)")
例4: パスワード強度チェック
Pythonpassword = "MyPass123" # 長さチェック if len(password) >= 8: print("長さ: OK") else: print("長さ: 8文字以上にしてください") # 強度判定 if len(password) >= 12: strength = "強" elif len(password) >= 8: strength = "中" else: strength = "弱" print(f"パスワード強度: {strength}")
例5: 営業時間チェック
Pythonhour = 14 # 14時 # 営業時間: 9時〜18時 if 9 <= hour < 18: print("営業中") else: print("営業時間外") # 詳細判定 if hour < 9: print("開店前") elif hour < 18: print("営業中") else: print("閉店")
例6: 商品の在庫警告
Pythonstock = 5 min_stock = 10 max_stock = 100 if stock <= 0: print("在庫切れ") elif stock < min_stock: print("在庫が少なくなっています") elif stock > max_stock: print("過剰在庫です") else: print("在庫は適正です")
よくある間違い
間違い1: =と==の混同
Pythonx = 5 # 間違い: = は代入 if x = 5: # SyntaxError print("5です") # 正しい: == は比較 if x == 5: print("5です")
間違い2: 範囲判定の書き方
Pythonage = 25 # 間違い: このように書けない if 18 < age > 65: # 意図と異なる結果 print("範囲外") # 正しい: andを使う if age > 18 and age < 65: print("範囲内") # またはチェーン比較 if 18 < age < 65: print("範囲内")
間違い3: 浮動小数点の比較
Python# 問題: 小数の誤差 result = 0.1 + 0.2 print(result == 0.3) # False(誤差がある) # 対策: 許容範囲で比較 tolerance = 0.0001 if abs(result - 0.3) < tolerance: print("ほぼ等しい")
間違い4: 文字列と数値の比較
Python# エラー: 型が違う age = 20 if age == "20": # False(intとstrは別) print("20歳") # 正しい: 型を揃える if age == int("20"): print("20歳") # または if str(age) == "20": print("20歳")
間違い5: 複数の値との比較
Pythonx = 5 # 間違い: このように書けない if x == 3 or 5 or 7: # 常にTrue(5はTruethy) print("3, 5, 7のいずれか") # 正しい if x == 3 or x == 5 or x == 7: print("3, 5, 7のいずれか") # またはinを使う if x in [3, 5, 7]: print("3, 5, 7のいずれか")
練習問題
問題1(基礎)⭐☆☆
変数temperatureに気温が入っています。25度以上なら「暑い」、25度未満なら「涼しい」と表示してください。
💡 ヒント
>= または < を使います。
✅ 解答例
Pythontemperature = 28 if temperature >= 25: print("暑い") else: print("涼しい")
実行結果:
暑い
解説:
>= は「以上」を意味し、等しい場合も含みます。
問題2(基礎)⭐☆☆
2つの数値を比較して、大きい方を表示してください。
💡 ヒント
> で大小を比較します。
✅ 解答例
Pythona = 10 b = 15 if a > b: print(f"大きい方: {a}") else: print(f"大きい方: {b}")
実行結果:
大きい方: 15
解説:
a > b が真ならa、偽ならbが大きい方です。
問題3(応用)⭐⭐☆
点数が0〜100の範囲に入っているか確認し、範囲外なら「無効な点数」と表示してください。
💡 ヒント
チェーン比較 0 <= score <= 100 を使います。
✅ 解答例
Pythonscore = 85 if 0 <= score <= 100: print(f"点数: {score}点") else: print("無効な点数") # 範囲外の例 score2 = 150 if 0 <= score2 <= 100: print(f"点数: {score2}点") else: print("無効な点数")
実行結果:
点数: 85点
無効な点数
解説: チェーン比較で範囲判定ができます。
まとめ
このレッスンでは、比較演算子を使った条件判定の基本を学びました。
- 比較演算子は、式を
True/Falseで評価するために使います。 ==と=の役割の違いを理解し、代入と比較を正しく使い分けられます。>,<,>=,<=を使って、大小比較や範囲判定ができます。- チェーン比較を使うことで、範囲チェックを簡潔に書けます。
- 型や小数誤差の影響を意識して、意図した比較式を書くことが重要です。
比較演算子 - 値を比べる
目次
このレッスンで学ぶこと
- 比較演算子とは何か
- 6つの比較演算子の使い方
- 比較演算子と条件分岐の組み合わせ
- 文字列やリストの比較
比較演算子とは
比較演算子は、2つの値を比べて、その結果を真(True)または偽(False)で返す記号です。
Pythonの比較演算子一覧
| 演算子 | 名前 | 意味 | 例 | 結果 |
|---|---|---|---|---|
== | 等しい | 左右が等しい | 5 == 5 | True |
!= | 等しくない | 左右が異なる | 5 != 3 | True |
> | より大きい | 左が右より大きい | 5 > 3 | True |
< | より小さい | 左が右より小さい | 5 < 3 | False |
>= | 以上 | 左が右以上 | 5 >= 5 | True |
<= | 以下 | 左が右以下 | 5 <= 3 | False |
比較演算子の特徴
- 比較結果は必ず
TrueかFalse(ブール型) - 数値、文字列、リストなど様々な型で使える
- 条件分岐(if文)で頻繁に使う
- 複数の比較を組み合わせられる
簡単な例
Python# 基本的な比較 print(10 == 10) # True(等しい) print(10 != 5) # True(異なる) print(10 > 5) # True(大きい) print(10 < 5) # False(小さくない)
なぜ比較演算子が必要なのか?
プログラムでは、「条件を満たしているか」を判断する場面が多くあります。
Pythonage = 18 # 18歳以上かチェック if age >= 18: print("成人です") else: print("未成年です")
比較演算子を使うことで、値の大小や一致を判定し、プログラムの動作を変えられます。
💡 豆知識: 比較演算子は「関係演算子」とも呼ばれます。2つの値の関係(大きい、小さい、等しい)を調べるため、この名前が付いています。
基本的な比較演算子
等しい(==)
機能: 左右の値が等しいかを判定します。
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("子供料金が適用されます")
用途: 上限チェック、範囲判定
範囲の判定
チェーン比較
機能: 複数の比較を連結して範囲を判定します。
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("快適な温度です")
書き方: 下限 <= 値 < 上限
用途: 範囲判定、グレード分け
文字列の比較
文字列の等価比較
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順)で比較されます。
リストの比較
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
具体例
例1: 成績評価システム
Pythonscore = 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: 料金計算(年齢別)
Pythonage = 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: BMI判定
Pythonweight = 65 height = 1.7 bmi = weight / height ** 2 print(f"BMI: {bmi:.1f}") if bmi < 18.5: print("低体重") elif bmi < 25: print("普通体重") elif bmi < 30: print("肥満(1度)") else: print("肥満(2度以上)")
例4: パスワード強度チェック
Pythonpassword = "MyPass123" # 長さチェック if len(password) >= 8: print("長さ: OK") else: print("長さ: 8文字以上にしてください") # 強度判定 if len(password) >= 12: strength = "強" elif len(password) >= 8: strength = "中" else: strength = "弱" print(f"パスワード強度: {strength}")
例5: 営業時間チェック
Pythonhour = 14 # 14時 # 営業時間: 9時〜18時 if 9 <= hour < 18: print("営業中") else: print("営業時間外") # 詳細判定 if hour < 9: print("開店前") elif hour < 18: print("営業中") else: print("閉店")
例6: 商品の在庫警告
Pythonstock = 5 min_stock = 10 max_stock = 100 if stock <= 0: print("在庫切れ") elif stock < min_stock: print("在庫が少なくなっています") elif stock > max_stock: print("過剰在庫です") else: print("在庫は適正です")
よくある間違い
間違い1: =と==の混同
Pythonx = 5 # 間違い: = は代入 if x = 5: # SyntaxError print("5です") # 正しい: == は比較 if x == 5: print("5です")
間違い2: 範囲判定の書き方
Pythonage = 25 # 間違い: このように書けない if 18 < age > 65: # 意図と異なる結果 print("範囲外") # 正しい: andを使う if age > 18 and age < 65: print("範囲内") # またはチェーン比較 if 18 < age < 65: print("範囲内")
間違い3: 浮動小数点の比較
Python# 問題: 小数の誤差 result = 0.1 + 0.2 print(result == 0.3) # False(誤差がある) # 対策: 許容範囲で比較 tolerance = 0.0001 if abs(result - 0.3) < tolerance: print("ほぼ等しい")
間違い4: 文字列と数値の比較
Python# エラー: 型が違う age = 20 if age == "20": # False(intとstrは別) print("20歳") # 正しい: 型を揃える if age == int("20"): print("20歳") # または if str(age) == "20": print("20歳")
間違い5: 複数の値との比較
Pythonx = 5 # 間違い: このように書けない if x == 3 or 5 or 7: # 常にTrue(5はTruethy) print("3, 5, 7のいずれか") # 正しい if x == 3 or x == 5 or x == 7: print("3, 5, 7のいずれか") # またはinを使う if x in [3, 5, 7]: print("3, 5, 7のいずれか")
練習問題
問題1(基礎)⭐☆☆
変数temperatureに気温が入っています。25度以上なら「暑い」、25度未満なら「涼しい」と表示してください。
💡 ヒント
>= または < を使います。
✅ 解答例
Pythontemperature = 28 if temperature >= 25: print("暑い") else: print("涼しい")
実行結果:
暑い
解説:
>= は「以上」を意味し、等しい場合も含みます。
問題2(基礎)⭐☆☆
2つの数値を比較して、大きい方を表示してください。
💡 ヒント
> で大小を比較します。
✅ 解答例
Pythona = 10 b = 15 if a > b: print(f"大きい方: {a}") else: print(f"大きい方: {b}")
実行結果:
大きい方: 15
解説:
a > b が真ならa、偽ならbが大きい方です。
問題3(応用)⭐⭐☆
点数が0〜100の範囲に入っているか確認し、範囲外なら「無効な点数」と表示してください。
💡 ヒント
チェーン比較 0 <= score <= 100 を使います。
✅ 解答例
Pythonscore = 85 if 0 <= score <= 100: print(f"点数: {score}点") else: print("無効な点数") # 範囲外の例 score2 = 150 if 0 <= score2 <= 100: print(f"点数: {score2}点") else: print("無効な点数")
実行結果:
点数: 85点
無効な点数
解説: チェーン比較で範囲判定ができます。
まとめ
このレッスンでは、比較演算子を使った条件判定の基本を学びました。
- 比較演算子は、式を
True/Falseで評価するために使います。 ==と=の役割の違いを理解し、代入と比較を正しく使い分けられます。>,<,>=,<=を使って、大小比較や範囲判定ができます。- チェーン比較を使うことで、範囲チェックを簡潔に書けます。
- 型や小数誤差の影響を意識して、意図した比較式を書くことが重要です。