Pythonの論理演算子には真偽を判定する優先順位があります。
計算でも括弧の中から処理していくのと同じですね。
高校数学Aの内容とも似ているので数学が得意だった方はラクラクだと思います。
- 論理演算子の優先順位は?
- 否定「not」はどうやって処理するの?
- 複雑な条件式の考え方は?
などをまとめています。
計算の優先順位に関しては以下の記事にまとめてあります。
Pythonで計算や比較をするときに使う演算子まとめています。 演算子にはどんな種類があるの?計算の優先順位は?//、%の意味は? などを解説しています。 公式Pythonチュートリアル 演算子とは 算術演算[…]
論理演算子3種類
- 「not」は条件の否定
- 「and」は「かつ」
- すべての条件が真のときのみ全体としてTrueになる
- 「or」は「または」
- 条件が1つでも真であれば全体としてTrueになる
andやorが何と何を結んでいるのかに注意しましょう。
詳しくは以下の記事で解説しています。
Pythonの比較演算子「and・or・not」の意味や使い方と優先順位を解説していきます。 if文やwhile文の条件文を書くときに使われるのが比較演算子ですが、それと合わせてこの「and・or・not」を使えるとより複雑な条件文[…]
論理演算子の優先順位
- 括弧の中から判定
- 「not」の判定
- 「and」の判定
- 「or」の判定
ルールは上の通りですが、例題で判定したほうが分かりやすいので、以下を見てください。
1 2 3 4 5 6 7 8 9 10 11 |
>>> not (4 < 5 and 6 < 8) False >>> 4 < 5 and 6 < 8 True >>> not (4 < 5 or 6 < 8) False >>> 4 < 5 or 6 < 8 True |
一つ目はカッコの中身の「4 < 5 and 6 < 8」や「4 < 5 or 6 < 8」は真(True)ですが、
その先頭にnotがついてるので真偽を逆転させて偽(False)を返しています。
先頭にnotがついた式は次のように書きなおすことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
>>> not (4 < 5 and 6 < 8) False ##上と同じ条件文 >>> not(4 < 5) or not(6 < 8) False >>> not (4 < 5 and 6 < 8) False ##上と同じ条件文 >>> not(4 < 5) or not(6 < 8) False |
「and」の否定は「or」、「or」の否定は「and」になります。
次にもう少し複雑な例を見ていきましょう。
1 2 |
>>> 3 == 2 or 4 < 5 and 6 < 8 True |
- 3 == 2 or 4 < 5 and 6 < 8
- 偽 or 真 and 真
- 括弧がないので各条件の判定
- 偽 or 真
- 「and」の判定「真 and 真」は真
- True
- 「or」の判定「偽 or 真」は真
1 2 |
>>> not (3 == 2 or 4 < 5) and 6 < 8 False |
- not (3 == 2 or 4 < 5) and 6 < 8
- not (偽 or 真) and 真
- (not 真) and 真
- 括弧の中から判定
- 「or」の判定「偽 or 真」は真
- 偽 and 真
- 「not」の判定「not 真」は偽
- False
- 「and」の判定「偽 and 真」は偽
論理演算子を理解できれば条件文はいくらでも複雑にできます。
真偽の判定はデータ分析で使うpandasなどでも使うので覚えておきましょう。
まとめ
カッコの中から条件の判定を行っているのは四則計算と同じですね。
難しく感じるかもしれませんが、if文やwhile文でも出てくるので重要です。
if文やwhile文は以下の記事に書いています。参考になれば幸いです。
Pythonの条件分岐に使われるif文の基本的な書き方を紹介していきたいと思います。そもそも条件分岐とは何か?if文を書くときの注意点を見ていきましょう。 条件分岐とは 条件によって処理を分けることを条件分岐と言います。分岐の[…]
Pythonのループ処理に使われるfor文とwhile文の解説です。ループ処理とは何かの解説とこれらの構文の使い方や違を初心者向けに説明していきます。 ループ処理とは? ループ処理は繰り返し処理ともいわれます。名前の通り同じプ[…]
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]