if~else文をマスターしたら、次は複数分岐にも挑戦しましょう。
イメージとしてはこんな感じ。
上記の例だと変数aに入力した値によって、処理A、処理B、処理Cのうちいずれか1つが実行されます。これが複数分岐です。
elif文による複数分岐の例
Pythonの複数分岐にはelif文を使います。
以下のようにif文と組み合わせて利用します。
ファイル名:19_elif1.py
# elifによる複数分岐
print("何番?(1~3) ", end="")
a = int(input())
if a == 1:
print("コーラ")
elif a == 2:
print("ペプシ")
elif a == 3:
print("ドクターペッパー")
実行イメージ(キーボードから 3 と入力した場合)
何番?(1~3) 3 [Enter] ドクターペッパー
解説
先頭はif文から始めます。
if a == 1:
次の条件からelif文を続けます。
elif a == 2:
:
上記スクリプトは入力した数値によって次のように表示が変わります。
入力 | 表示 |
---|---|
1 | コーラ |
2 | ペプシ |
3 | ドクターペッパー |
elif文はいくつでも記述が可能なので、10分岐でも100分岐でも実質可能です。
複数分岐に「それ以外」の処理も追加する
先ほどのサンプルだと1~3以外の数値が入力されると何も表示されません。
何番?(1~3) 5 [Enter]
if~elifに複数指定した条件以外の場合に何か処理をさせたい場合、else文を最後に追加します。
実行イメージ
何番?(1~3) 4 [Enter] それ、無いよ
ファイル名:20_elif_else.py
# 複数分岐+「それ以外」の処理
print("何番?(1~3) ", end="")
a = int(input())
if a == 1:
print("コーラ")
elif a == 2:
print("ペプシ")
elif a == 3:
print("ドクターペッパー")
else:
print("それ、無いよ")
else文を使うと自然な雰囲気のプログラムが作成できます。
大いに利用しましょう。
課題
1
キーボードから入力した数値によって、表示メッセージを変えるスクリプトを完成させましょう。
なお、下の表を参考に予期せぬ数値が入力された場合も考慮すること。
ファイル名:urutraman.py
実行イメージ
何番目のウルトラマンにしますか? (1~3)2 [Enter] セブンですね。
入力 | メッセージ文 |
---|---|
1 | ウルトラマンですね |
2 | セブンですね |
3 | ジャックですね |
上記以外 | シュワッチ! |
2
テストの点数を入力すると判定してくれるスクリプトである。
80点以上は「優」、60点以上は「良」、40点以上は「可」、それ以外は「不可」を表示するようにしてください。(ヒント:判定の順番が大事)
ファイル名:yuryoka.py
実行イメージ
点数? 55 [Enter]
可
3
入力した数の範囲をチェックするスクリプト。
0~100なら「OK」、それ以外は「NG」と表示するように判定せよ。
ファイル名: range_check.py
実行イメージ(0~100の場合)
数値? 100 [Enter] OK
実行イメージ(0~100以外の場合)
数値? -1 [Enter] NG
ちなみに if文の論理演算子andを使うと次のように範囲の判定が可能だが、今回は、and演算子を使わずにif~elif~else文のみでこの判定を行うことを考えてみてくれたまえ。なぜならプログラミングは、色々な視点で考えることが大事だからだ。
参考: range_check_and.py
# and演算子による範囲チェック
print("数値? ", end="")
n = int(input())
# 0~100の範囲をチェック
if n >= 0 and n <= 100:
print("OK")
else:
print("NG")
コメント