※この記事にはプロモーションが含まれています。

10. 条件分岐(IF文)

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

更新日:

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

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が発売中!
発売数9,000本突破を記念して、今だけ期間限定で87%オフの大セール中!!!

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以上です。

 
 

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です。

 
 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が発売中!
発売数9,000本突破を記念して、今だけ期間限定で87%オフの大セール中!!!

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

 
 
 
最後に...


Pythonの学習においては、実際に様々なプログラムを書いて試していくことが非常に重要です。Pythonについて、さらに詳しく学ばれたい方は、以下の私のUdemy講座をご検討いただければ幸いです。


Pythonを用いて世界中のWebサイトから自動的にデータ収集する方法を、基礎からていねいに学ぶことができます。Pythonを初めて学ばれた方も、最初に取り組みやすい内容になっています。


>> Pythonによるビジネスに役立つWebスクレイピング
発売数9,000本突破を記念して大セール中!期間限定になりますのでお早めに。
Pythonによるビジネスに役立つWebスクレイピング(BeautifulSoup、Selenium、Requests)講座の画面

既に9,000名以上の方に受講頂き、大変好評です。またコースに満足いただけない場合でも、30日返金保証があるので安心です。

期間限定の割引クーポンは、こちらから!
>> Pythonによるビジネスに役立つWebスクレイピング
   
   





-10. 条件分岐(IF文)

Copyright© ビジPy , 2024 All Rights Reserved.