3秒でわかる
二つの値の大小や等しさを調べて真偽値を返す演算子のこと。条件分岐やループの継続判定を組み立てるための出発点になる記号です。
もう少し詳しく
どういうものか
比較演算子は、二つの値を比べて真か偽かを返す記号になる。等しい ==、等しくない !=、より大きい >、以上 >= などがこれにあたる。返るのは数値ではなく真偽値で、if の条件や while の継続判定にそのまま置ける。
なぜ必要か
プログラムが処理を分けるには、何かを判断する材料が要る。点数が 60 以上なら合格、在庫が 0 以下なら注文停止、という判断はすべて比較の結果に基づく。分岐と繰り返しは比較演算子なしには書けず、条件分岐を学ぶときに必ず最初に出てくる。
具体例
score = 72
print(score >= 60) # True
print(score == 100) # False
print(score != 100) # True
if 60 <= score < 80: # Python は範囲をつなげて書ける
print("良")主な記号は次のとおり。
== 等しい
!= 等しくない
> より大きい
>= 以上
< より小さい
<= 以下つまずきやすいところ
= と == の取り違えが最も多い。= は代入で、== が比較になる。C や JavaScript では if (x = 5) と書いてもエラーにならず、代入された 5 が真と扱われて条件が常に成立する。Python では文法エラーになるため気づける。
浮動小数点数を == で比べるのも避ける。0.1 + 0.2 == 0.3 は False になる。二進数で表せない小数に誤差が出るためで、差の絶対値が十分小さいかを見る形にする。
文字列の大小比較は辞書順で行われるため、"10" < "9" は True になる。数値として比べたいときは変換してから比べる。
似た用語との違い
| 種類 | 例 | 返る値 |
|---|---|---|
| 比較演算子 | a > b | 真偽値 |
| 論理演算子 | a and b | 真偽値 (比較を組み合わせる) |
| 代入演算子 | a = b | 代入そのもの |
JavaScript には == と === があり、前者は型を変換してから比べるため 1 == "1" が真になる。既定では === を使う。
覚え方
= は左へ入れる矢印、== は左右を見比べる天秤にあたる。矢印と天秤は役目が違う、と覚えておくと取り違えにくい。条件の中に矢印が出てきたら、そこはまず疑ってよい。
比較の結果は真偽値なので、そのまま変数へ入れて後で使える。is_adult = age >= 18 のように名前を付けておくと、条件が長くなったときに読みやすくなる。