【Python】論理演算子and、orを複数回使った時の使い方と優先順位

and or eyecatch image

Pythonの論理演算子andornotの応用についてです。本記事ではandorを複数回使った時の考え方について、まとめました。論理演算子andornot比較演算子同様、TrueもしくはFalseを返します。
詳細は基礎編の記事をご参照ください。

また、論理演算子の種類、意味、例、評価結果は次のようになります。

スクロールできます
演算子意味評価結果
andかつTrue and TrueTrue
orあるいはTrue or FalseTrue
not否定not TrueFalse
目次

論理演算子andを複数回使った時の例

andandの左右の式が共にTrueの時のみTrueを返します。左右の式のどちらかがFalse、もしくは左右の式のどちらかがFalseの時はFalseを返します。複数回使った時は左側のandから順番に計算をしていきます。文字の説明だけではわかりにくいと思いますので、実際に例を見て解説していきます。

全ての式がTrueの場合

andで繋がれた全ての式がTrueの場合、結果的に全体の評価結果(出力結果)はTrueを返します。

例1

Python
print(2 == 2 and 3 > 1 and 4 != 3)

'''
【出力結果】
True

!=ってどういう意味だっけという方は下記記事ご参照ください。

例1の式を次のように(1)(2)に分けて、順番に計算をしていきます。

2 == 2 and 3 > 1 and 4 != 3 image

まずは、(1)について計算します。2 == 2True3 > 1Trueなので、(1)Trueを返します。その為、例1は次のようになります。

True and 4 != 3 image

続いて、(2)の計算をします。andの左側はTrue、右側の4 != 3Trueになので、(2)Trueを返します。よって、全体の評価結果(出力結果)もTrueになります。

いずれかの式がFalseの場合

andで繋がれた、いずれかの式がFalseの場合、結果的に全体の評価結果(出力結果)もFalseを返します。

例2

Python
print(2 == 2 and 3 > 1 and 3 != 3)

'''
【出力結果】
False

上記と同様、(1)(2)に分けて、順番に計算していきます。

2 == 2 and 3 > 1 and 3 != 3 image

まずは(1)について計算します。2 == 2True3 > 1Trueなので、(1)Trueを返します。その為、例2は次のようになります。

True and 3 !=  3 image

続いて、(2)について計算します。andの左側はTrue、右側は3 != 3Falseなので、(2)Falseを返します。よって、全体の評価結果(出力結果)もFalseになります。

論理演算子orを複数回使った時の例

論理演算子ororの左右の式がTrueもしくは、いずれかの式がTrueの時はTrueを返します。また、左右の式がFalseの時はFalseを返します。 複数回使った時は左側から順番に計算をしていきます。これもandの時と同様、実際に例をみて解説していきます。

いずれかの式がTrueの場合

orでつながれた、いずれかの式がTrueの場合、結果的に全体の評価結果(出力結果)もTrueを返します。

例3

Python
print(2 == 2 or 3 < 1 or 3 != 3)

'''
【出力結果】
True

先程と同様、例3を次のように分けて考えます。

まずは(1)について計算します。2 == 2True3 < 1Falseなので、(1)Trueを返します。その為、例3は次のようになります。

True or 3 != 3

続いて、(2)について計算します。orの左側はTrue、右側は3 != 3なので、Falseを返します。その為、(2)Trueを返します。よって、全体の評価結果(出力結果)もTrueを返します。

全ての式がFalseの場合

orでつながれた全ての式がFalseの場合、結果的に全体の評価結果(出力結果)もFalseを返します。

例4

Python
print(2 > 2 or 3 < 1 or 3 !=3)

'''
【出力結果】
False

例4を次のように分けて考えます。

続いて、(1)について計算します。2 > 2False3 < 1Falseなので、(1)Falseを返します。その為、例4は次のようになります。

false or 3 != 3

最後に(2)について計算します。orの左側はFalse、右側は3 != 3なので、Falseを返します。その為、(2)Falseを返します。よって、全体の評価結果(出力結果)もFalseを返します。

論理演算子and 、orを組み合わせる場合

話が複雑になりますが、演算子andと演算子orを組み合わせて用いる事もできます。andorはどちらから計算されるの?と疑問が浮かびますが、四則計算(÷(/))のように計算する優先順位があります。計算する優先順位はand→orになります。文字だけでは理解しにくいと思いますので、例を見て解説していきます。

or、and(True)の順の場合

演算子or、演算子andが組み合わさっており、両方がTrueを返す場合、全体の結果もTrueを返します。

例5

Python
print(2 > 2 or 2 == 2 and 2 >= 2)

'''
【出力結果】
True

例5の場合、次のように(1)andの計算をした後、(2)orを計算します。

2 > 2 or 2 == 2 and 2 >= 2 image

(1)では2 == 2True2 >= 2Trueなので、(1)の結果はTrueが返ります。よって、例5は次のようになります。

2 > 2 or True

続いて(2)の計算に移ります。演算子orの左側の2 > 2False、右側はTrueになります。その為、(2)Trueを返します。よって、全体の評価結果(出力結果)もTrueが返ります。

or、and(False)の順の場合

この場合も上記と同様にandを先に計算してから、orを計算するようにします。では早速例を見て行きましょう。

例6

Python
print(2 > 2 or 2 == 2 and 2 >= 3)

'''
【出力結果】
False

例6の例の場合も、(1)andを計算した後、(2)orを計算します。

2 > 2 or 2 == 2 and 2 >= 3 image

まず、(1)から計算を行っていきます。2 == 2True2 > 3Falseなので、(1)Falseが返ります。よって、例6は次のようになります。

2 > 2 or False image

続いて(2)の計算に移ります。2>2Falseorの右側もFalseになります。その為、(2)Falseを返します。よって、全体の評価結果(出力結果)もFalseが返ります。

andを2回以上とorを組み合わせた場合

andが複数ある場合もandorの順番で計算していきます。andが複数個ある場合は左側にあるandから計算します。例を3つ用意しました。1つずつ解説していきます。

or、and、andの順の場合

例7

Python
print(2 > 2 or 2 == 2 and 2 >= 2 and 2 == 2)

'''
【出力結果】
True

(1)andのうち左側のもの、(2)andのうち右側のもの、(3)orの順番に計算をしていきます。

2 > 2 or 2 == 2 and 2 >= 2 and 2 == 2 image

まず、(1)の計算です。2 == 2True2 >= 2Trueなので、(1)Trueが返ります。その為、例7は次のようになります。

2 > 2 or True and 2 == 2 image

つづいて、(2)の計算です。andの左側はTrue、右側は2 == 2Trueなので、(2)Trueが返ります。その為、例7は次のようになります。

2 > 2 or True image

つづいて、(3)の計算です。演算子orの左側の2 > 2Falseorの右側はTrueになります。その為、(3)Trueを返します。よって、例7の全体の評価結果(出力結果)はTrueになります。

and、or、andの順番の場合

例8

Python
print(2 == 2 and 2 > 2 or 2 >= 2 and 2 != 2)

'''
【出力結果】
False

(1)andのうち左側、(2)andのうち右側、(3)orの順番に計算していきます。

2 == 2 and 2 > 2 or 2 >= 2 and 2 != 2 image

まず、(1)の計算です。2 == 2True2 > 2Falseなので、(1)Falseが返ります。その為、例8は次のようになります。

False or 2 >= 2 and 2 != 2 image

続いて、(2)の計算です。2 >= 2True2 != 2Falseなので、(2)Falseが返ります。その為、例8は次のようになります。

False or False image

続いて(3)の計算です。演算子orの左右の値はFalseになっています。その為、(3)Falseを返します。よって、例8の全体の評価結果(出力結果)はFalseとなります。

and、and、orの順番の場合

例9

Python
print(2 != 2 and 2 >= 2 and 2 == 2 or 2 > 2)

'''
【出力結果】
False

(1)andのうち左側、(2)andのうち左側、(3)orの順番に計算していきます。

2 != 2 and 2 >= 2 and 2 == 2 or 2 > 2 image

まず、(1)の計算です。2 != 2False2 >= 2Trueなので、(1)Falseが返ります。その為、例9は次のようになります。

False and 2 == 2 or 2 > 2 image

続いて、(2)の計算です。演算子andの左側はFalse2 == 2Trueなので、(2)Falseが返ります。その為、例9は次のようになります。

最後に、(3)の計算です。演算子orの左側はFalse、右側の2 > 2Falseなので、(3)Falseが返ります。よって、全体の評価結果(出力結果)もFalseを返します。

今回、紹介できなかった論理演算子notは以下の記事で紹介しています。ぜひご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次