英国でデータサイエンスを学ぶ

30代になってから海外で統計学・機械学習・プログラミングを勉強

MENU

pythonで条件分岐(if、else、elif)

Pythonで条件分岐を行う時の、ifやelifの使い方のメモです。
何よりも、インデントで構文が決まること、「else if」ではなく「elif」であることなどを忘れないようにしないといけませんね。

Pythonで単純な条件分岐(if)

例えば、aというオブジェクトが整数5の場合は画面に"hello world!"という文字列を表示する方法は、以下のようになります。

a = 3
if a == 5:
    print("hello world!")
#上記コードでは何も出力されません。
a = 5
if a == 5:
    print("hello world!")
#上記コードでは、"hello world!"と出力されます。


Pythonで条件分岐(条件を満たさない場合)(if、else)

条件を満たさない場合の記述は、C++と一緒でelseで指定可能です。
例えば、オブジェクトaが5の倍数でない時にはその旨を出力するコードは以下の通りです。

a = 3
if a == 5:
    print("hello world!")
else :
    print('a is "not" an integral multiple of 5')
#上記コードでは、"a is "not" an integral multiple of 5"と出力されます。


Pythonで複層的な条件分岐(if, elif)

複層的な条件分岐を行いたい場合、例えば、条件1、条件1を満たさないが条件2を満たすといった場合の方法です。
具体例として、オブジェクトaが15の倍数ではない、かつオブジェクトaが3の倍数である時に文字列を出力するコードです。

a = 9
if a%15 == 0:
    print("a is an integral multiple of 15")
elif a%3 == 0:
    print("a is an integral multiple of 3")
#この場合、"a is an integral multiple of 3"と出力されます。

ここで"a%15"というのはオブジェクトaを15で割った余りです。
余りが0かどうかを見ているので、15の倍数かどうかを判断していることになります。

念のため忘れてしまいがちな算術演算子のメモです。
detailed-balance.hatenablog.com

Pythonで複層的な条件分岐(if)

複層的な条件分岐を行いたい場合、例えば、条件1、条件2、条件3を満たす時の方法です。
具体例として、オブジェクトaが5の倍数で、かつオブジェクトaが3の倍数でもある時に文字列を出力するコードです。

a = 15
if a%5 == 0:
    if a%3 == 0:
        print("a is an integral multiple of 15")
#この場合、"a is an integral multiple of 15"と出力されます。

ここで"a%5"というのはオブジェクトaを5で割った余りです。
余りが0かどうかを見ているので、5の倍数かどうかを判断していることになります。


Pythonで複数条件で分岐(if and)

上記の複層的な条件分岐は、1度に複数の条件を課すことで同様の結果を得られます。
具体的には

a = 15
if a%5 == 0 and a%3 == 0:
        print("a is an integral multiple of 15")
#この場合、"a is an integral multiple of 15"と出力されます。

ここでは"and"で複数の条件を繋げています。
他のブール演算子については以下を参照ください。
detailed-balance.hatenablog.com



Pythonで複数の条件のうち1つでも合致するかどうかで分岐(if in)

複数の条件のうち1つでも合致するかどうかを、elifを用いないで表現する方法です。
具体的には

a = 15
if a in [15,21,32,45]:
        print("hello world!")
#この場合、"hello world!"と出力されます。

この場合は、a が15もしくは21もしくは32もしくは45のいずれかの時にTrueになります。