Pythonで論理演算する

Pythonで論理演算をしてみます。

目次

  1. 論理演算とは
  2. 論理和
  3. 論理積
  4. 否定
  5. 排他的論理和

論理演算とは

論理演算というのはTrueとFalseの組み合わせで式全体がTrueなのかFalseなのかを判断するというものです。

ブール演算子は3種類あります。

演算子 内容
or 論理和
and 論理積
not 否定

それぞれの計算はこのようになります。

論理和

  True False
True Ture True
False True False
>>> print(True or True)
True
>>> print(True or False)
True
>>> print(False or True)
True
>>> print(False or False)
False

論理積

  True False
True Ture False
False False False
>>> print(True and True)
True
>>> print(True and False)
False
>>> print(False and True)
False
>>> print(False and False)
False

否定

入力 出力
True Flase
False True
>>> print(not True)
False
>>> print(not False)
True

排他的論理和

排他的論理和(XOR)は入力が異なる場合にTrueになるというものです。

  True False
True False True
False True False

ブール演算子にはand、or、notしかありませんでした。ということで、論理和、論理積、否定を組み合わせて排他的論理和を計算してみます。

>>> a, b = True, True
>>> print(((not a) and b) or (a and (not b)))
False
>>> a, b = True, False
>>> print(((not a) and b) or (a and (not b)))
True
>>> a, b = False, True
>>> print(((not a) and b) or (a and (not b)))
True
>>> a, b = False, False
>>> print(((not a) and b) or (a and (not b)))
False

式が長いので、ビット単位演算子の排他的論理和(^)を使って計算してみます。

>>> a, b = True, True
>>> a ^ b
False
>>> a, b = True, False
>>> a ^ b
True
>>> a, b = False, True
>>> a ^ b
True
>>> a, b = False, False
>>> a ^ b
False

operatorモジュールのxor関数でも排他的論理和の計算ができます。operatorモジュールは標準モジュールですので、追加のインストールは不要です。

>>> import operator
>>> operator.xor(True, True)
False
>>> operator.xor(True, False)
True
>>> operator.xor(False, True)
True
>>> operator.xor(False, False)
False

広告

Pythonカテゴリの投稿