Pythonのif文の条件で使える演算子の種類や、elifで複数の分岐を設定する方法を実例で解説しています。
if文の基本構文
if文は、条件分岐「else」「elif」の組み合わせで大きく4パターンある。
①条件分岐なし
②条件分岐1つ。真(True)か偽(False)か
③条件分岐2つ以上。指定した条件のみ処理実行。
④条件分岐2つ以上。偽(False)の場合の処理も設定
▼①条件分岐なし
条件に一致しない場合はなにもしない。パターン1(条件分岐なし)
if A:
AAA
「A」:条件式
「AAA」:Aが成り立つ場合の処理
※条件式の末尾に「:」をつける。
※if文の中で実行するパターンはインデントを下げる。(一般的なエディタの場合「:」をつけて改行すればインデントが自動でつく)実例(条件分岐なし、Ture)
A = 100
if A == 100:
print('Aは100です。')
#出力
# Aは100です。
実例(条件分岐なし、False)
A = 90
if A == 100:
print('Aは100です。')
▼②条件分岐あり(elseのみ)
2つの分岐。真(True)か偽(False)か。パターン2(else)
if A:
AAA
else:
BBB
「A」:条件式
「AAA」:Aが成り立つ場合の処理
「else:」:Aが成り立たない場合
「BBB」:Aが成り立たない場合の処理
※elseの後に条件式は不要。
※「else:」常にダブルコロンとセットになる。実例(条件分岐あり、else)
A = 90
if A == 100:
print('Aは100です。')
else:
print('Aは100ではありません。')
#出力
# Aは100ではありません。
▼③条件分岐2つ以上(elseなし)
指定した条件でのみ処理を実行する。
elifで分岐条件と処理を記述。
└ elif = else ifの略(他にもし~なら)パターン3(elif)
if A:
AAA
elif B:
BBB
elif C:
CCC
「A」:条件式
「AAA」:Aが成り立つ場合の処理
「elif B」:2つ目の条件式
「BBB」:Bが成り立つ場合の処理
「elif C」:3つ目の条件式
「CCC」:Cが成り立つ場合の処理
※「elif」は複数設定可能。(上記だと2個のみ)
※「elif 条件式:」条件式の終わりに「:」をつける
※上から条件を確認し、Tureになったところで処理は終了する
※「if」および「elif」の条件に一致しない場合は処理なし実例(条件分岐あり、elif、True)
A = 70
if A == 100:
print('Aは100です。')
elif A == 80:
print('Aは80です。')
elif A == 70:
print('Aは70です。')
#出力
# Aは70です。
実例(一致条件が複数)
A = 70
B = 100
if A == 100:
print('Aは100です。')
elif B == 100:
print('Bは100です。')
elif A == 70:
print('Aは70です。')
#出力
# Bは100です。
上から条件が一致した時点で終了する。
└「B == 100」も「A == 70」もTrueだが、上の「B == 100」がTrueになった時点で処理は終了となる。
▼④条件分岐2つ以上(elseあり)
偽(False)の場合の処理も設定パターン3(elif、else)
if A:
AAA
elif B:
BBB
elif C:
CCC
else:
DDD
「A」:条件式
「AAA」:Aが成り立つ場合の処理
「elif B」:2つ目の条件式
「BBB」:Bが成り立つ場合の処理
「elif C」:3つ目の条件式
「CCC」:Cが成り立つ場合の処理
「else:」:いずれの条件にも該当しない場合
「DDD」:いずれの条件に該当しない場合の処理
※「elif」は複数設定可能。(上記だと2個のみ)
※「elif 条件式:」条件式の終わりに「:」をつける実例(elif、else)
A = 50
if A == 100:
print('Aは100です。')
elif A >= 80:
print('Aは80以上です。')
elif A >= 70:
print('Aは70以上です。')
else:
print('Aは70以下です。')
#出力
# Aは70以下です。
条件式の演算子
条件式を作るために使う演算子。
▼2種類の演算子がある
・「比較演算子」要素の比較
・「ブール演算子」条件式の組み合わせ
演算子一覧
比較演算子 | 意味 |
---|---|
== | 等しい |
!= | 等しくない |
> | より大きい(含まない) |
>= | 以上(含む) |
< | 未満(含まない) |
<= | 以下(含む) |
in | 要素を含む |
not in | 要素を含まない |
is | オブジェクトが等しい |
ブール演算子 | 内容 |
---|---|
and | かつ |
or | または |
not | でない |
比較演算子の実例
①「==」等しい
イコールは2つ。1つや3つ以上だとエラーになる。
(イコール1つは変数への代入)「==」等しい
A = 100
if A == 100:
print('Aは100です。')
else:
print('Aは100以外です。')
#出力
# Aは100です。
②「!=」等しくない
「!」が冒頭につくと、「~ではない」の意味になる。「!=」等しくない
A = 100
if A != 100:
print('Aは100以外です。')
else:
print('Aは100です。')
#出力
# Aは100です。
補足:「!」の呼び名
エクスクラネーションマーク、感嘆符、ビックリマーク
③「>」より大きい(含まない)
③「>」より大きい
A = 50
if A > 50:
print('Aは50より大きい。')
else:
print('Aは50以下。')
#出力
# Aは50以下。
④「>=」以上(含む)
「>=」以上(含む)
A = 50
if A >= 50:
print('Aは50より大きい。')
else:
print('Aは50以下。')
#出力
# Aは50より大きい。
⑤「<」未満(含まない)
「<」未満(含まない)
A = 50
if A < 50:
print('Aは50より小さい。')
else:
print('Aは50以上。')
#出力
# Aは50以上。
⑥「<=」以下(含む)
「<=」以下(含む)
A = 50
if A <= 50:
print('Aは50以下。')
else:
print('Aは50より大きい。')
#出力
# Aは50以下。
⑦「in」要素を含む
if A in B
└ AはBの中に含まれる。
※Aの方が短い。Bの方が長い。「in」要素を含む
A = 'pen'
B = 'I have a pen'
if A in B:
print('Yes')
else:
print('No')
#出力
# Yes
⑧「not in」要素を含まない
if A not in B
└ AはBの中に含まれない。「not in」要素を含まない
A = 'I have a pen'
B = 'pen'
if B not in A:
print('Yes')
else:
print('No')
#出力
# No
➈「is」オブジェクトが等しい
オブジェクトに割り振られたid番号が等しいかを確認している。
「==」よりも厳格。「is」オブジェクトが等しい
A = 'I have a pen'
B = 'I have a pen'
if A is A:
print('Yes')
else:
print('No')
#出力
# Yes
「is」異なるオブジェクトの比較
A = 'I have a pen'
B = 'I have a pen'
if A is B:
print('Yes')
else:
print('No')
#出力
# No
ブール演算子の実例
条件を複数掛け合わせたいときに使用。
それぞれの演算子は併用可能。
①「and」かつ
if A and B:
└ 「A」「B」条件式
※条件は何個でも組み合わせ可能。「and」かつ
a = 1
b = 2
if a == 1 and b == 2:
print('a=1, b=2です')
else:
print('a=1, b=2ではない')
#出力
# a=1, b=2です
「and」かつ 例2
a = 1
b = 2
c = 3
if a == 1 and b == 2 and c != 3:
print('a=1かつb=2かつ、3が3以外です')
else:
print('a=1かつb=2かつ、3が3以外ではない')
#出力
# a=1かつb=2かつ、3が3以外ではない
②「or」または
if A or B:
「and」かつ
a = 1
b = 2
c = 3
if a == 1 and b == 2 or c != 3:
print('a=1かつb=2または、3が3以外です')
else:
print('a=1かつb=2または、3が3以外ではない')
#出力
# a=1かつb=2または、3が3以外です
▼演算子は併用可能「and」と「or」
a = 1
b = 2
c = 3
if a == 100 and b == 200 or c != 3:
print('a=1かつb=2または、3が3以外です')
else:
print('a=1かつb=2または、3が3以外ではない')
#出力
# a=1かつb=2または、3が3以外ではない
③「not」ではない
if not A:
└ 条件式の先頭につける「not」ではない
a = 100
b = 100
if not a == b:
print('a=bではない')
else:
print('a=bです')
#出力
# a=bです
「!=」と同じになる
a = 100
b = 100
if a != b:
print('a=bではない')
else:
print('a=bです')
#出力
# a=bです
■補足
if文はfor文の中で使われることが多い。
for文の中でif文を使うと、膨大な配列の中から、条件に一致した値のみを抜き出したりできる。
>for文についてはこちら