真偽値と比較・論理演算

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

これまで同様に、 TrueFalse の真偽値だけではなく、真偽値を返す を使うことができます。

(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
ベクトルの計算と関数の図示 真偽値と比較・論理演算 C++