論理演算子はPythonで複数の条件を組み合わせて評価(条件が成立するかどうか)したり、条件を否定(真偽を逆に)して評価する際に用いられます。
論理演算子の種類と演算式
論理演算子の一覧と演算式の例です。
論理 | 演算子 | 概要 | 演算式 | 結果 |
---|---|---|---|---|
否定 (ではない) | not | 条件が成立しなければ「True」 | not “a” == “b” | True |
論理積 (かつ) | and | 条件がすべて成立すれば「True」 | 7 > 3 and “a” == “b” | False |
論理和 (または) | or | 条件が1つでも成立すれば「True」 | 7 > 3 or “a” == “b” | True |
論理演算子の優先順位
論理演算子の優先順位は、not、and、or、の順となっています。
また、その他の演算子との優先順位は、算術演算子、比較演算子、論理演算子、の順で処理されます。
論理演算子の使い方
「or」と「and」の演算結果は、必ず「True」と「False」になるわけではなく、文字列や数値などになる場合もあるので注意が必要です。「not」は「True」と「False」のみです。
print(not 7 < 3) # True
print(7 or 3) # 7
print("aaa" or "bbb") # aaa
print(7 and 3) # 3
print("aaa" and "bbb") # bbb
プログラム(ソースコード)
ここで注目してほしいのは「条件」となる演算式(条件式)です。比較演算子は論理演算子より優先順位が高いので先に処理されます。先に処理された演算式(条件式)の値(ここではTrueやFalseなど)を条件が成立するかどうか論理演算子で評価しています。
# 条件1と条件2のどちらか1つの条件が成立すれば「True」
# 条件1 96 == 96 ← 条件が成立する
# 条件2 95 == 90 ← 条件が成立しない
print("<or>")
print(96 == 96 or 95 == 90) # True
# 条件1と条件2の両方の条件が成立すれば「True」
# 条件1 92 == 92 ← 条件が成立する
# 条件2 96 == 96 ← 条件が成立する
print("<and>")
print(92 == 92 and 96 == 96) # True
# 条件1が成立しなければ「True」
# 条件1 "武田信玄" == "上杉謙信" ← 条件が成立しない
print("<not>")
print(not "武田信玄" == "上杉謙信") # True
プログラム(ソースコード)の保存先
- 保存先(venv仮想環境):C:\code\py310\venv\trial
- ファイル名:sample_code_012.py
- エンコード:UTF-8
コマンドプロンプトでPythonのプログラム(ソースコード)を実行
実行すると「or」「and」「not」いずれの演算式も結果が「True」となりました。
(trial) C:\code\py310\venv\trial>python sample_code_012.py
<or>
True
<and>
True
<not>
True
(trial) C:\code\py310\venv\trial>
まとめ
- 複数の条件を論理演算子でつないで評価する
- 論理演算子の優先順位は「not」「or」「and」の順で処理される
- 「or」と「and」の演算結果は「True」か「False」とは限らない
- 「not」の演算結果は「True」と「False」のみ