Pythonで論理演算する
Pythonで論理演算をしてみます。
目次
論理演算とは
論理演算というのは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カテゴリの投稿
- PythonからWindows RuntimeのAPIを使ってみる
- Pythonから外部のアプリケーションを実行する
- PythonでApacheのログを読む
- PythonでURLを結合する
- PythonでURLを解析する
- Pythonでtar.gzなファイルを解凍(展開)する
- Pythonでwavファイルを書き出す
- Pythonでwavファイルを読み込む
- Pythonでデータを整形して出力する
- Pythonでハミング窓関数を作る(SciPy編)
- Pythonでブール値を数値に変換する
- Pythonでモジュールをインポートする
- Pythonで数値を比較する
- Pythonで文字の内容から真偽値の判定をする
- Pythonで自前の関数を定義する
- Pythonで論理演算する
- Pythonのprint関数で改行せずに出力する
- Pythonのプログラムを終了する
- Pythonの関数には参照を渡す
- Windows10 バージョン1703 Creators Update にPythonとSphinxをインストール
- Windwos10 バージョン1703 Creators Update にPythonとSphinxをインストール (Anaconda編)
- reStructuredTextの表
- ダウンロードしたファイルのチェックサムをPythonで確認してみた
- 反復処理 (while)
- 反復処理(for)
- 条件分岐
- 自作のモジュールをインポートする