Pythonの比較演算子「and・or・not」の意味や使い方と優先順位を解説していきます。
if文やwhile文の条件文を書くときに使われるのが比較演算子ですが、それと合わせてこの「and・or・not」を使えるとより複雑な条件文を書くことができます。
if文やwhile文の詳しい内容は以下の記事をご覧ください。
Pythonの条件分岐に使われるif文の基本的な書き方を紹介していきたいと思います。そもそも条件分岐とは何か?if文を書くときの注意点を見ていきましょう。 条件分岐とは 条件によって処理を分けることを条件分岐と言います。分岐の[…]
Pythonのループ処理に使われるfor文とwhile文の解説です。ループ処理とは何かの解説とこれらの構文の使い方や違を初心者向けに説明していきます。 ループ処理とは? ループ処理は繰り返し処理ともいわれます。名前の通り同じプ[…]
論理演算子とは?
論理演算とは与えられた条件の真偽を判定することを言います。プログラミングでは真をTrue、偽をFalseで判定します。
「犬は哺乳類である」これは真になります。というように真偽の判定をします。高校数学Aの論証のところで習ったのを思い出しましょう。
TrueとFalseの2つデータ型のことをbool型といいます。if文やwhile文の条件文に使います。
この論理演算で複数の条件を判断したいときに使うのが「and・or」などの論理演算子です。また、否定を表す「not」も論理演算子と言われます。ブール演算子と言われることもあります。
andの意味と使い方
「and」は「かつ」という意味です。「A and B」と書いて「条件Aかつ条件Bが真のときに全体としてTrueを返します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#両方真 >>> 5 > 0 and 10 > 5 True #5<0が偽 >>> 5 < 0 and 10 > 5 False #10<5が偽 >>> 5 > 0 and 10 < 5 False #両方偽 >>> 5 < 0 and 10 < 5 False |
1つ目のように両方の条件が真でないと全体として真になりません。
また、andは2個以上の条件をつなげることができますが、その場合もすべての条件が真でないとTrueにはなりません。
1 2 3 4 5 |
>>> 4 > 5 and 2 != 3 and -1 < 0 False >>> 4 < 5 and 2 != 3 and -1 < 0 True |
orの意味と使い方
「or」は「または」という意味です。「A or B」と書いて「AまたはB」が真のときTrueを返します。どちらか一つの条件が真ならTrueになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#両方真 >>> 5 > 0 or 10 > 5) True #片方が真 >>> 5 < 0 or 10 > 5 True #片方が真 >>> 5 > 0 or 10 < 5 True #両方偽 >>> 5 < 0 or 10 < 5 False |
一番最後のように両方共の条件が偽のときに限りFalseになります。
もちろん、3つ以上の条件を判定する場合も少なくとも一つ真の条件があればTrueになります。
1 2 3 4 5 6 7 8 |
>>> 4 > 5 or 2 != 3 or -1 < 0 True >>> 4 < 5 or 2 != 3 or -1 < 0 True >>> 4 > 5 or 2 == 3 or -1 > 0 False |
notの意味と使い方
- 条件の否定
- Trueとfalseが逆転します
- and・orの否定
- andとorが逆転します。
条件の否定
「not」は「否定する」という意味です。「not A」と書いて「条件Aの否定」を表します。
条件の真偽の逆の値を返すと覚えておきましょう。条件Aが真ならその否定は偽になりますし、逆もまた然りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#大なりの否定 >>> not 5 > 0 False #上と同じ条件 >>> 5 <= 0 False #イコールの否定 >>> not 5 == 0 True #上と同じ >>> 5 != 0 True |
「5 > 0」はTrueですが、その否定は逆の真偽値になるのでFalseになります。「5 != 0」の場合も同様に、この条件はFalseですが、その否定は逆のTrueになります。
- 条件の真偽を判定
- 「not」があれば真偽を逆にする
and・orの否定
- 「and」の否定は「or」
- 「or」の否定は「and」
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#andの否定 >>> not (5 < 0 and 10 < 0) True #上と同じ条件 >>> 5 >= 0 or 10 >= 0 True #orの否定 >>> not (5 > 0 or 10 > 0) False #上と同じ >>> 5 <= 0 and 10 <= 0 False |
- 「not (A and B)」のとき「(not A) or (not B)」となる
- それぞれの条件A,Bの否定
- 「and」が「or」に変わる
- 「not (A or B)」のとき「(not A) and (not B)」となる
- それぞれの条件A,Bの否定
- 「or」が「and」に変わる
条件の否定も忘れずに!!
まとめ
- 「not」は条件の否定
- 「and」は「かつ」
- 「or」は「または」
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]