20.5. 真偽値と比較・論理演算
数の大小の比較に必要な比較演算子と、論理演算を紹介します。
比較 #
不等号 >, < などは常識的な意味を持ち、評価の結果は True または False の真偽値 (bool) となります。
左右の項が等しいか調べるためには、等号を2つ重ね == とすることに注意してください。
5 > 3True
2 < 1False
1 + 1 == 2True
以上以下、等しくないなども2文字の比較演算子を用います。
5 >= 3+2True
2 <= 1False
1 + 1 != 1 + 1 + 1True
これまで同様に、1や2などの数だけではなく、数を返す 式 を使うことができます。
論理演算 #
論理積と論理和の演算子は and, or です。
True and TrueTrue
False and TrueFalse
True or FalseTrue
これまで同様に、 True や False の真偽値だけではなく、真偽値を返す 式 を使うことができます。
(1 + 1 == 2) and TrueTrue
先に (1 + 1 == 2) の部分式が評価されて True になります
(1 < 2) and (2 < 3)True
なお、これはPythonでは、1 < 2 < 3 と書くことができます。
例題 #
14.2. 数値の符号化
の章で、浮動小数の表現にはほとんどの場合に誤差が生ずることを学びました。
0.1 を誤差無しで扱うことができるのか 10回足して 1.0 になるかどうかを試してみましょう。
0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0False
整数や、(1/2)のある範囲の冪乗とその和で表せる数については誤差は生じません。
1.0 + 2.0 == 3.0True
(0.5 + 1.0) * 2 == 3.0True