Pythonでプログラムを書くとき、条件によって処理を分けたい場面はよくあります。
そのときに使うのが、if、else、elif構文です。
この記事では、初心者の方向けに、if~elseの使い方からelifの応用まで丁寧に解説します。
この記事の対象
基本構文:if ~ else
if 条件式:
条件がTrueのときの処理
else:
条件がFalseのときの処理
if は 条件をチェックします。
else は それ以外すべてを処理します。
else には条件式が 不要です。
if ~ else の基本例
a = int(input("2を入力してください: "))
if a == 2:
print("2です。")
else:
print("違います。")
出力結果
2を入力してください: 2
2です。
偶数・奇数の判定
a = int(input("数値を入力してください: "))
if a % 2 == 0:
print("偶数です")
else:
print("奇数です")
解説
a % 2は「aを2で割った余り」- 余りが0なら偶数、1なら奇数です
フラグ(ON/OFF)の判定
flag = True
if flag:
print("ON")
else:
print("OFF")
Pythonでは、True または False を**フラグ(スイッチのようなもの)**としてよく使います。
また、if flag: のように書けば、flag == True と同じ意味になります。
elif を使って分岐を増やす
elif(=else if)は、条件を複数に分けたいときに使います。
a = int(input("点数を入力してください: "))
if a >= 90:
print("評価: A")
elif a >= 70:
print("評価: B")
elif a >= 50:
print("評価: C")
else:
print("評価: D")
出力例
点数を入力してください: 85
評価: B
if ~ elif ~ else の流れ
if 条件1:
処理1
elif 条件2:
処理2
elif 条件3:
処理3
else:
すべての条件がFalseのときの処理
条件に 当てはまる最初の1つだけ が実行されます
順番に評価され、最初にTrueになったものだけ処理されることに注意
条件式の書き方のコツ
| 演算子 | 内容 |
| x == y | xとyが等しい |
| x != y | xとyが等しくない |
| x > y | xがyより大きい |
| x >= y | xがyと等しいかそれ以上 |
| x < y | xがyより小さい |
| x <= y | xがyと等しいかそれ以下 |
if age >= 18 and age <= 65:
print("働き盛り")
if文でよくあるエラー
| エラー例 | 原因 | 対策 |
|---|---|---|
| IndentationError | インデント(スペース)が間違っている | 半角スペース4つで統一 |
| SyntaxError | コロン忘れや条件式のミス | if 条件式: の形を確認 |
まとめ
ifは条件に応じた処理を実行したいときに使うelseは「それ以外すべて」に対応elifで条件をさらに追加できるTrue/FalseでON/OFFなどのフラグ管理もできる
