32.5. 真偽値と比較・論理演算
数の大小の比較に必要な比較演算子と、論理演算を紹介します。
比較 #
不等号 >
, <
などは常識的な意味を持ち、評価の結果は True
または False
の真偽値 (bool) となります。
左右の項が等しいか調べるためには、等号を2つ重ね ==
とすることに注意してください。
5 > 3
True
2 < 1
False
1 + 1 == 2
True
以上以下、等しくないなども2文字の比較演算子を用います。
5 >= 3+2
True
2 <= 1
False
1 + 1 != 1 + 1 + 1
True
これまで同様に、1や2などの数だけではなく、数を返す 式 を使うことができます。
論理演算 #
論理積と論理和の演算子は and
, or
です。
True and True
True
False and True
False
True or False
True
これまで同様に、 True
や False
の真偽値だけではなく、真偽値を返す 式 を使うことができます。
(1 + 1 == 2) and True
True
先に (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.0
False
整数や、(1/2)のある範囲の冪乗とその和で表せる数については誤差は生じません。
1.0 + 2.0 == 3.0
True
(0.5 + 1.0) * 2 == 3.0
True