Python | elif 節

Python
スポンサーリンク

Pythonのelifをやさしく理解する

はじめての条件分岐は少しややこしく感じますよね。けれど「上から順番に当てはまるものを一つだけ選ぶ仕組み」と思えば、すっと腑に落ちます。ここでは、初心者でも迷わないように、例題たっぷりで説明します。


基本の考え方

  • 役割: if は最初のチェック、elif は「もし最初じゃないなら次を試す」、else は「どれにも当てはまらなかったとき」。
  • 流れ: 上から順番に条件を評価して、最初に当てはまった1つだけが実行される。
  • 使いどころ: 3つ以上の選択肢があるときにコードをスッキリさせる。

書き方と動き

if 条件1:
    処理1
elif 条件2:
    処理2
elif 条件3:
    処理3
else:
    処理4
Python
  • ポイント:
    • 一度だけ実行: どれかに当てはまったら、残りは見ない。
    • elif はいくつでも: 必要な分だけ増やせる。
    • else は予備: 予想外の入力に備える避難所。

よくあるつまずき

  • コロン忘れ: if 条件: の「:」を忘れない。
  • インデントずれ: 中の処理は必ず同じ幅で字下げ(半角スペース4つが一般的)。
  • 順番ミス: 広い条件(例: x >= 0)を先に書くと、狭い条件(例: x > 10)が永遠に到達しないことがある。

例題で身につける

1) テストの成績ランク分け(数値の範囲判定)

score = int(input("点数(0〜100)を入力してください: "))

if score >= 90:
    print("評価: A")
elif score >= 75:
    print("評価: B")
elif score >= 60:
    print("評価: C")
else:
    print("評価: D")
Python
  • 順番の理由: 上から「高い点」ほど先に判定。score >= 90に当てはまらなければ、次の範囲へ。

2) 文字列の種類判定(複数の性質チェック)

text = input("文字列を入力してください: ")

if text.isdecimal():
    print("数字だけの文字列です")
elif text.isalpha():
    print("アルファベットだけの文字列です")
elif text.isalnum():
    print("英数字が混ざった文字列です")
else:
    print("記号などが含まれています")
Python
  • 考え方: 「厳しい条件(数字だけ)」→「次に厳しい(アルファベットだけ)」→「混在」→「その他」。

3) 料金計算(複数の年齢区分)

age = int(input("年齢を入力してください: "))

if age < 6:
    price = 0      # 未就学は無料
elif age <= 12:
    price = 300    # 小学生
elif age <= 18:
    price = 500    # 中高生
else:
    price = 800    # 一般
print("料金:", price, "円")
Python
  • コツ: 「〜以下」「〜未満」を混ぜるときは範囲が重ならないようにする。

4) シンプルな電卓(演算子で分岐)

a = float(input("数値a: "))
b = float(input("数値b: "))
op = input("演算子 (+, -, *, /): ")

if op == "+":
    print(a + b)
elif op == "-":
    print(a - b)
elif op == "*":
    print(a * b)
elif op == "/":
    if b == 0:
        print("0で割ることはできません")
    else:
        print(a / b)
else:
    print("未知の演算子です")
Python
  • 二段構え: / のときだけさらに中で分岐して安全に処理。

失敗しないための整理術

  • 条件を言葉で並べる: コードにする前に「Aなら…、だめならB…、それもだめならC…」と日本語で段取り。
  • 狭い→広いの順: より限定的な条件を先に、一般的な条件は後ろへ。
  • 共通処理は外へ: 分岐後に同じ処理をするなら、if-elif-elseの外にまとめると読みやすい。

小さな練習問題

  • 練習1(時刻で挨拶): 0〜23の時刻を入力し、
    • 5〜10: 「おはよう」
    • 11〜17: 「こんにちは」
    • 18〜22: 「こんばんは」
    • それ以外: 「夜更かしですね」
      を表示するプログラムを書いてみる。
  • 練習2(送料判定): 注文金額で送料を決める。
    • 5000円以上: 送料0円
    • 3000〜4999円: 送料200円
    • 1000〜2999円: 送料400円
    • それ以下: 送料600円
  • 練習3(温度で服装アドバイス): 気温で提案を変える。
    • 30度以上: 半袖+水分補給
    • 20〜29度: 長袖薄手
    • 10〜19度: セーター
    • それ未満: コート

解答例と解説

いいですね!では、先ほど提示した「小さな練習問題」を一つずつ 解答例と解説 を示します。初心者向けに「なぜそう書くのか」も丁寧に説明します。


練習1:時刻で挨拶

問題: 0〜23の時刻を入力し、

  • 5〜10: 「おはよう」
  • 11〜17: 「こんにちは」
  • 18〜22: 「こんばんは」
  • それ以外: 「夜更かしですね」

解答例

hour = int(input("時刻を入力してください (0〜23): "))

if 5 <= hour <= 10:
    print("おはよう")
elif 11 <= hour <= 17:
    print("こんにちは")
elif 18 <= hour <= 22:
    print("こんばんは")
else:
    print("夜更かしですね")
Python

解説

  • 5 <= hour <= 10 のように「範囲」を書けるのがPythonの便利なところ。
  • 条件は上から順番にチェックされるので、最初に当てはまったものだけが実行されます。
  • else は「どれにも当てはまらないとき」の保険。

練習2:送料判定

問題: 注文金額で送料を決める。

  • 5000円以上: 送料0円
  • 3000〜4999円: 送料200円
  • 1000〜2999円: 送料400円
  • それ以下: 送料600円

解答例

amount = int(input("注文金額を入力してください: "))

if amount >= 5000:
    shipping = 0
elif amount >= 3000:
    shipping = 200
elif amount >= 1000:
    shipping = 400
else:
    shipping = 600

print("送料は", shipping, "円です")
Python

解説

  • elif amount >= 3000 と書けば、5000以上はすでに除外されているので「3000〜4999円」に自然に絞られます。
  • 条件を「範囲」で書かなくても、上から順に判定することで範囲が決まるのがポイント。

練習3:温度で服装アドバイス

問題: 気温で提案を変える。

  • 30度以上: 半袖+水分補給
  • 20〜29度: 長袖薄手
  • 10〜19度: セーター
  • それ未満: コート

解答例

temp = int(input("気温を入力してください: "))

if temp >= 30:
    print("半袖+水分補給がおすすめです")
elif temp >= 20:
    print("長袖薄手がおすすめです")
elif temp >= 10:
    print("セーターがおすすめです")
else:
    print("コートがおすすめです")
Python

解説

  • elif temp >= 20 の時点で「30以上は除外済み」なので、自然に「20〜29度」に限定されます。
  • 条件を「大きい方から順に」書くと、コードがシンプルになります。

総まとめ

  • elifは「順番に試す」仕組み → 範囲を細かく書かなくても、上から順に判定するだけで自然に分けられる。
  • elseは保険 → 想定外の入力にも対応できる。
  • 条件は広いものを後ろに、狭いものを前に → そうすると漏れなく判定できる。
Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました