論理演算子は、複数の条件式を論理演算子を使って組み合わせて利用することで、複雑な条件式を記述することができます。
※ ^ (排他的論理和XOR) も今回合わせて記載していますが、厳密には論理演算子ではなくビット演算子になります。論理回路(AND OR XOR NOT)を合わせて記載したほうがわかりやすため記載しております。
論理演算子
偽として扱われるのは False , None , 数値の0 , 空の文字列、空のコンテナ と扱われます。偽以外の状態を真として評価されます。
論理演算子 | 概要 |
---|---|
and | 論理積(AND) まず 左辺を評価します。左辺 が偽なら 左辺の値を返します。 それ以外の場合には、 右辺 の値を評価し、その結果を返します。 |
or | 論理和(OR) まず左辺を評価します。左辺が真なら 左辺の値を返します。 それ以外の場合には、右辺の値を評価し、その結果を返します。 |
^ | 排他的論理和(XOR) 左辺、右辺同士のビット単位の XOR (排他的論理和) を返します。 |
not | 論理否定(NOT) 引数が偽である場合にはTueを、それ以外の場合にはFalseになります。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
>>> ######## and ######## >>> (True and True) True >>> (False and False) False >>> (True and False) False >>> (False and True) False >>> >>> ######## or ######## >>> (True or True) True >>> (False or False) False >>> (True or False) True >>> (False or True) True >>> >>> ######## ^ ######## >>> (True ^ True) False >>> (False ^ False) False >>> (True ^ False) True >>> (False^ True) True >>> >>> ######## not ######## >>> (not True) False >>> (not False) True >>> |
and や or では結果を返すのは True や False ではなく最後に評価した値を返します。これを活用すると、下記のように空文字ならデフォルトで文字を格納することなどに活用ができます。
1 2 3 4 5 6 7 |
>>> s = "" >>> print( s or "abc") abc >>> s = "def" >>> print( s or "abc") def >>> |