比較演算・ブーリアン演算

比較演算

比較演算 ( comparison operation ) とは比較演算子による二項演算を意味します。

詳しくはPython公式サイトの6.10. 比較を参照してください。

二項演算は ‘被演算子 演算子 被演算子’ という形式で、演算子と左および右の2つの被演算子を演算することを意味します。たとえば ‘a + 1’ は 変数’a’と整数’1’を演算子’+’によって演算をおこなうという意味になります。

比較演算は比較演算子 ‘== (equal to)’ , ‘!= (not equal to)’ , ‘< (less than)’ , ‘> (greater than),’ <= (less than or equal to) ‘,’>= (greater than or qeual to)’ を使う二項演算で、演算した値はブーリアン型である True か False になります。たとえば ’ 1 > 2 ‘は 整数 ’1’ と 整数 ‘2’ を(比較)演算子 ‘>’ を使って演算することになります。1は2より小さいわけですから、「1は2より大きい」という演算の結果はFalseになります。

メンバーシップテスト演算

メンバーシップテスト演算(Membership test operations)もしくは所属検査演算は、‘in’と ’not in’ を使ってリスト、タブル集合、辞書といったコンテナ型のデータ構造に対して、その中に対象が含まれているかどうかを確認する演算です。’a in x’は x の中に a は含まれている (存在している) かということをチェックしTrueかFalseを返します。

同一性比較

同一性比較 (Identity comparisons)は ‘is’ と ’is not’により2つのオブジェクトが同じものであるか(あるいは違うものであるか)を比べます。

メンバーシップテストは’not in’と表記し同一性比較は’is not’と表記しますが、経験的に ‘not in’ と ‘is not’ は勘違いしやすいし、エラーのときは見つけづらいです。

ブーリアン演算

ブーリアン演算(boolean operation)は、True と False であるboolean型の値を使った二項演算です。演算子’and’, ‘or’, ‘not’を使います。’a and b’ は、‘a’ かつ ‘b’ がTrueだったときTrueになります。‘a or b’は ’a’ もしくは ‘b’ がTrueだったときTrueになります。’not’は否定の意味でTrueがFalseにFalseがTrueに反転します。

booleansample.py

# File: booleansample.py

a=True
b=False
c=True

# True and False -> False
a and b
# True and True -> True
a and c
# False and True -> False
b and c

# All True
a or b
a or c
b or c

以下の and と or の使い方は処理の順番を理解するために説明しています。このような使い方を推奨しているわけではありません。

’a and b’の処理は、まずaを評価して、aがTrueのとき、次にbを評価します。そのときの返却値はbの値になります。なので、このような書き方ができます。


# zの値は 1 + 2 の結果が入る
z = a and (1+2)
print(z)

もしaがFalseの場合、bは評価されません。なので下の式はbがFalseなので’print(1+2)’の処理はされないことになります。

b and print(1+2)

’not’は否定です。次の式はどのような動作になるでしょうか?


not b and print(1+2)

ちなみにx or y は、xもyも処理されますが、xがFalse以外の値ならxの値を返し、xがFalseの場合yの値を返します。


a or (1+2)
(1+2) or a
b or (1+2)
(1+2) or b

戻る