Python - if による処理の分岐

公開日:2019-02-28

1. 概要

if で処理の流れを分岐します。

2.1 サンプル

インデントが変わるまで if のブロックになります。
ソース
a = 5
if a == 5:
    print(5)

実行結果
5

2.2 elif と else

elif で、次の条件の判定をすることができます。
elif は複数使うことができます。

else は、if の条件と、elif の条件に一致しなかった場合に処理されます。

ソース
a = "a"

if a == "b":
    print("b")
    
elif a == "c":
    print("c")
    
elif a == "d":
    print("d")
    
else:
    print("a");

実行結果
a

2.3 and と or

複数の条件を満たす必要がある場合は and、
どちらかの条件を満せばよい場合は or で式を結合します。

ソース
a = 1
b = "test"
if a == 1 and b == "test":
    print("OK1")

if a == 10 or b == "abc":
    print("OK2")

実行結果
OK1

動きとしては、最初に if の中の論理演算が行われ、
if はその結果が True か False かだけで分岐しています。

2.4 not

not を使って、否定することができます。
「not (a == 1)」の場合は、「a は 1」ではない、と言う意味になります。

ソース
a = 5
if not (a == 1):
    print("1ではありません")

if a != 1:
    print("1ではありません")

実行結果
1ではありません
1ではありません

2.5 and を使わない複数の条件の指定

Python では、and を使わずに複数の条件を指定することができます。
比較演算子の左右の値をそれぞれ比較して、1つでも成り立たない場合は false となります。

ソース
a = 5
if 10 >= a >= 0:
    print("0 ~ 10 です。")

print(5 < 15 > 10 < 20 < 25 > 5)
print(5 == 5 > 1)

実行結果
0 ~ 10 です。
True
True