10. 条件分岐(IF文)

図解!Pythonのif文でand、orによる複数条件の指定方法を徹底解説!

更新日:

if文を記述する際に条件がいくつかある場合、論理演算子のandやorを利用して、複数の条件を記述することもできます。但し、andやorを混合して利用する場合は、少し注意が必要です。
 
この記事では、andやorを用いて、複数の条件を記述する方法を確認していきましょう。
 
 
複数条件の記述以外のif文全般に関するトピックは、次の記事をご参照ください。
>> 図解!Python if文の徹底解説
 
 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が新発売!今なら期間限定で89%オフ!!!

if文でand(論理積(かつ))を使った複数条件の指定

論理演算子andを用いたif文の記述は以下になります。

if 条件式1 and 条件式2:
    条件式1、条件式2がともにTrueの時に実行する処理

 
さらにandで条件式を追加することもできます。

if 条件式1 and 条件式2 … and条件式n :
    条件式1、条件式2、… 条件式nがともにTrueの時に実行する処理

 
またelseやelifと組み合わせて、複数の条件分岐も記述することができます。

if 条件式1 and 条件式2:
    条件式1、条件式2がともにTrueの時に実行する処理
elif 条件式3 and 条件式4:
    条件式3、条件式4がともにTrueの時に実行する処理
else:
    上記のif文、elif文の条件が全てFalseの時に実行する処理

 
 
論理演算子andを利用した例を見てみましょう。

 
変数salesに代入された数値が、100以上500以下の場合、「Salesは100以上、500未満です。」と表示します。そしてそれ以外の場合、「Salesは100未満、もしくは、500以上です。」と表示します。
 
salesに120を代入し実行すると「Salesは100以上、500未満です。」と表示されました。

salesは100以上、500未満です。

 
 
同じ処理に対して、今度はsalesに90を代入し実行すると、「salesは100未満、もしくは、500以上です。」と表示されました。

salesは100未満、もしくは、500以上です。

 
 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が新発売!今なら期間限定で89%オフ!!!

if文でor(論理和(または))を使った複数条件の指定

また論理演算子orを用いたif文の記述は以下になります。

if 条件式1 or 条件式2:
    条件式1、条件式2のいずれかがTrueの時に実行する処理

 
andと同様、さらにorで条件式を追加することもできます。

if 条件式1 or 条件式2 … or 条件式n :
    条件式1、条件式2、… 条件式nのいずれかがTrueの時に実行する処理

 
またelseやelifと組み合わせて、複数の条件分岐も記述することができます。

if 条件式1 or 条件式2:
    条件式1、条件式2のいずれかがTrueの時に実行する処理
elif 条件式3 or 条件式4:
    条件式3、条件式4のいずれかがTrueの時に実行する処理
else:
    上記のif文、elif文の条件が全てFalseの時に実行する処理

 
 
今度は論理演算子orを利用した例を見てみましょう。
 
変数xに代入された数値が、500以上100未満の場合、「Trueです。」と表示します。そしてそれ以外の場合、「Falseです。」と表示します。
 
xに120を代入し実行すると「Falseです。」と表示されました。

Falseです。

 
 
同じ処理に対して、今度はxに550を代入し実行すると「trueです。」と表示されました。

Trueです。

 
 

if文でandとorを使った複数条件の指定

if文では、論理演算子andとorの両方を組み合わせて使うことができます。この場合の注意点は、論理演算子andがorよりも優先されるということです。

 
例えば、次のようなandとorを組み合わせた条件があると、

if 条件式1 or 条件式2 and 条件式3:
    上記の条件文がTrueの時に実行する処理

 
まずandで結ばれた「条件式2 and 条件式3」の箇所が優先され、次に条件式1と先ほどの条件「条件式2 and 条件式3」がorで結ばれることになります。

 
つまり、以下の条件と同様になります。

if 条件式1 or (条件式2 and 条件式3):
    上記の条件文がTrueの時に実行する処理

 
ということで、上の「上記の条件文がTrueの時」とは、「条件式2と条件式3ともにTrue、もしくは、条件式1がTrueの時」という事になります。

 
 
今度は論理演算子orを利用した例を見てみましょう。

 
変数xに代入された数値が、50以上、もしくは20未満で、かつ、変数yに代入された値が5の場合、「Trueです。」と表示し、そしてそれ以外の場合「Falseです。」と表示したいとします。
 
そして次のようなif文を書き、xに5を、yに5を代入し実行すると

Falseです。

「Falseです。」と表示されてしまいました。これは先ほど説明したとおり、andとorではandが優先された為です。

 
つまり、if文の条件は「x >= 50 or (x < 20 and y == 5):」となり、「(x < 20 and y == 5)」がFalse、「x >= 50」もFalseとなった結果、「Falseです。」と表示されてしまいました。

 
 
今度は、次のようにif文を変更して、先ほどと同様、xに5を、yに5を代入し実行すると

Trueです。

期待通り「Trueです。」と表示されました。

 
このように、andとorを合わせて使う場合には優先順位に気を付けて使う必要があります。

 
 
関連記事です。
Pythonのif文全般のトピックについては、こちらに纏めた記事がございます。

 
Pythonに関する重要なトピック全般について学んでいきたいと考えておられる方には、次のリンクをお勧めします。
 






まとめ記事

1

Python3におけるWEBスクレイピングのやり方について初心者向けに解説した記事です。   Requests、Beautiful Soup、Selenium、Pandas、newspape ...

2

Pythonの基本的なトピックについて、チュートリアル形式で初心者向けに解説した記事です。プログラミング未経験者や初心者でもわかりやすいよう、丁寧に解説しています。   Pythonでデータ ...

3

Pandas(パンダス)とは、データを効率的に扱うために開発されたPythonのライブラリの1つで、データの取り込みや加工・集計、分析処理に利用します。   Pandasには2つの主要なデー ...

4

データ分析、機械学習、ディープラーニングにはグラフの描画による可視化は不可欠です。データは、加工前の状態ではただの数字の羅列でしかなく、一目で必要な情報が伝わるものではありません。それを集計しグラフに ...

5

NumPy(ナンパイ)は、数値計算を効率的に行うための拡張ライブラリです。ベクトルや行列などを効率的に数値計算するための数学関数ライブラリを提供します。NumPyを使うことにより、数値計算をより早く、 ...

-10. 条件分岐(IF文)

Copyright© AI-interのPython3入門 , 2020 All Rights Reserved.