論理演算とは
論理演算(Logical Operation)は、ブール演算(Boolean Operation)とも呼ばれ、1(真)か0(偽)かの2通りの入力値に対して1つの値を出力する演算です。
私は中学生のときに習いました。そのときは三角関数とかに比べて、なんて簡単なことだというくらいにしか感じてなかったですが、今となると重要なことだったんだと思い返します。言葉は難しそうですが、小学生でも分かる簡単なことです。では始めましょう。
論理積(AND)
論理積(AND)(Logical Conjunction)は、AとBの両方を含む部分で、「AかつB」の関係を表します。入力値がすべて1の場合に1を出力し、それ以外の場合には0を出力します。なかなか、教科書っぽいです説明ですね。私は2進数の"1"は数えられるから"有る"。"0"は数えられないから"なし"と覚えました。
真理値表 | ||
A | B | 出力 |
ある | ある | ある |
ある | なし | なし |
なし | ある | なし |
なし | なし | なし |
インタラクティブシェルを使って試してみると次のようになります。
>>> A = 1
>>> B = 1
>>> C = 0
>>> D = 0
>>> A and B
1
>>> A and C
0
>>> C and D
0
論理和(OR)
論理和(OR)(Logical Disjunction)は、AとBの少なくともいずれかを含む部分で、「AまたはB」の関係を表します。入力値のいずれかに1が入力された場合に1を出力し、それ以外の場合には0を出力します。要するにAか、Bのどちらかが有れば、有るという演算です。真理値表 | ||
A | B | 出力 |
ある | ある | ある |
ある | なし | ある |
なし | ある | ある |
なし | なし | なし |
インタラクティブシェルを使って試してみると次のようになります。
>>> A = 1
>>> B = 1
>>> C = 0
>>> D = 0
>>> A or B
1
>>> A or C
1
>>> C or D
0
否定(NOT)
否定(NOT)(Logical Negation)は、Aを含まない部分で、「Aではない」関係を表します。入力された値が1なら0に、0なら1に反転します。Iron
Pythonの場合、not演算を行うとbool値になってしまいます。ですが、"1"=True、"0"=Falseだと思えば、なんの混乱もなくしようできると思います。真理値表 | |
A | 出力 |
ある | なし |
なし | ある |
インタラクティブシェルを使って試してみると次のようになります。