Python入門|elif文を使って複数条件に対応しよう【レッスン2-3】

一つ前のLessonでは条件分岐(if-else文)について学習しました。
今回は条件分岐(if-elif-else文)について見ていきます。
Lesson1:基礎文法編
Lesson2:制御構造編
・Lesson2-1:比較演算子と論理演算子を理解しよう
・Lesson2-2:条件分岐(if-else文)を理解しよう
・Lesson2-3:条件分岐(if-elif-else文)を理解しよう ◁今回はココ
・Lesson2-4:条件分岐(match文)を理解しよう
・Lesson2-5:繰り返し処理(for文)を理解しよう
・Lesson2-6:繰り返し処理(while文)を理解しよう
・Lesson2-7:繰り返しの制御を理解しよう
・Lesson2-8:エラーメッセージを読めるようになろう
・Lesson2-9:例外処理の基礎を理解しよう
・練習問題2-1:ハイアンドロー ゲームを作ろう
・練習問題2-2:数字当てゲームを作ろう
・練習問題2-3:簡単なじゃんけんゲームを作ろう
Lesson3:関数とスコープ編
Lesson4:データ構造編
Lesson5:オブジェクト指向編
次のステップ:Pythonを用いたアプリ開発
複数の条件をスマートに処理|elif文の使い方と使用例
この章ではPythonにおける「条件分岐(elif文)」の意味や使い方を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。
Pythonではif-else
文を使って1つの条件に基づいて処理を分岐させることができますが、複数の条件を順番に確認したい場合にはelif
文を使用します。
elif
文を使うことで複数の条件を柔軟にチェックできるようになり、複雑な条件分岐も簡単に実装できるようになります。
if-else
文について詳細に知りたい方は↓↓の記事を確認して下さい。
条件分岐(elif文)とは?
elif
は「else if」の略で、1つのif
文だけでは足りない場合に使います。
if
の条件がFalseだったときに、次の条件を確認するためにelif
を使い、Trueになる条件が見つかった時点で処理を実行します。
以下がelif
文の基本的な構文です。
if 条件1: # 条件1がTrueの場合の処理 elif 条件2: # 条件1がFalseかつ条件2がTrueの場合の処理 else: # 全ての条件がFalseの場合の処理
条件分岐(elif文)の使用例
次に、実際の例を使ってelif
文の動作を確認しましょう。
ここでは、ユーザーに数値を入力してもらい、その数が正の数か、ゼロか、または負の数かを判定するプログラムを作成します。
num = int(input("数字を入力してください: ")) if num > 0: print("この数は正の数です。") elif num == 0: print("この数はゼロです。") else: print("この数は負の数です。")
このプログラムでは、まずif
文で入力された数が正の数かどうかを確認します。もしnum > 0
がTrueであれば、「この数は正の数です。」というメッセージが表示されます。
次にelif
文で数値がゼロかどうかを確認します。もしnum == 0
がTrueであれば、「この数はゼロです。」というメッセージが表示されます。
どちらの条件にも該当しない場合はelse
文が実行され、「この数は負の数です。」と表示されます。
このように、elif
を使うことで複数の条件を順番に確認でき、1つのif-else
文ではカバーできない場合にも対応することができます。
まとめ
elif
文はif-else
文と組み合わせることで、複数の条件を効率よく処理するための非常に便利なツールです。
複数の条件が必要なプログラムでは、if-elif-else
の構造を使ってコードを簡潔かつ読みやすくすることができます。
これにより複雑なロジックもシンプルに記述でき、プログラムの保守性も向上します。
練習問題:天気によって行動を決めるプログラムを作ろう
天気を元に、その日の行動を決めるプログラムを作成してください。
問題の詳細条件
以下の要件に従ってコードを完成させてください。
input
関数を使って、ユーザーから天気(「晴れ」「雨」「曇り」)を入力してもらうこと。- 条件分岐(
if-elif-else
文)を使用して、入力された天気に応じたメッセージを表示すること。 - 入力された天気が「晴れ」の場合は「外出しましょう」、天気が「雨」の場合は「家にいましょう」、天気が「曇り」の場合は「軽く散歩でもしましょう」と表示すること。
- それ以外の言葉が入力された場合は「指定された言葉は天気ではありません」と表示すること。
ただし、以下のような実行結果となるコードを書くこと。
今日の天気はどうですか(晴れ/雨/曇り)?: 晴れ 外出しましょう!
今日の天気はどうですか(晴れ/雨/曇り)?: 雨 家にいましょう。
今日の天気はどうですか(晴れ/雨/曇り)?: 曇り 軽く散歩でもしましょう。
今日の天気はどうですか(晴れ/雨/曇り)?: こんにちは 指定された言葉は天気ではありません。
【ヒント】難しいと感じる人だけ見よう
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
- ヒント1【コードの構成を見る】
-
正解のコードは上から順に以下のような構成となっています。
1.ユーザーからの入力を受け取る部分
1-1.input
関数を使ってユーザーから天気を入力
1-2. 入力された天気を変数weather
に格納2.条件分岐(
if-elif-else
文)
2-1.if
文で天気が「晴れ」の場合の処理を実行
2-2.elif
文で天気が「雨」の場合の処理を実行
2-3.elif
文で天気が「曇り」の場合の処理を実行
2-4. それ以外の天気が入力された場合のelse
文を実行
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。(クリックして開く)
# 天気によって行動を決めるプログラム # 使用する文法: 条件分岐(elif文) # ユーザーから天気を入力してもらう weather = input("今日の天気はどうですか(晴れ/雨/曇り)?: ") # 条件分岐を使って天気に応じた行動を表示する """【穴埋め問題1】 ここにif文を使って天気が「晴れ」の場合の行動を表示するコードを書いてください。 """ """【穴埋め問題2】 ここにelif文を使って天気が「雨」の場合の行動を表示するコードを書いてください。 """ """【穴埋め問題3】 ここにelif文を使って天気が「曇り」の場合の行動を表示するコードを書いてください。 """ """【穴埋め問題4】 ここにelse文を使って、それ以外の天気が入力された場合のメッセージを表示するコードを書いてください。 """
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
問題の答え合わせと解説
この問題の一つの正解例とそのコードの解説を以下に示します。
一つの正解例
例えば以下のようなプログラムが考えられます。
- 正解コード
-
# 天気によって行動を決めるプログラム # 使用する文法: 条件分岐(elif文) # ユーザーから天気を入力してもらう weather = input("今日の天気はどうですか(晴れ/雨/曇り)?: ") # 条件分岐を使って天気に応じた行動を表示する if weather == "晴れ": print("外出しましょう!") elif weather == "雨": print("家にいましょう。") elif weather == "曇り": print("軽く散歩でもしましょう。") else: print("指定された言葉は天気ではありません。")
正解例の詳細解説
このコードでは「条件分岐(elif文)」を用いて、ユーザーの入力に基づき天気に応じた行動を決定するプログラムを作成しています。
以下に各ブロックごとにコードの動作を説明します。
- 詳細解説
-
ユーザー入力部分
weather = input("今日の天気はどうですか(晴れ/雨/曇り)?: ")
ここでは
input
関数を使用してユーザーからの入力を受け取り、weather
という変数に格納します。ユーザーには「晴れ」「雨」「曇り」のいずれかを入力してもらうことを期待しています。
条件分岐(if-elif-else文)
if weather == "晴れ": print("外出しましょう!")
まず最初に
if
文で天気が「晴れ」かどうかを確認します。ユーザーが「晴れ」と入力した場合、「外出しましょう!」というメッセージが表示されます。
elif weather == "雨": print("家にいましょう。")
次に
elif
文を使って天気が「雨」であるかどうかを確認します。もしユーザーが「雨」と入力した場合、「家にいましょう。」と表示されます。
elif weather == "曇り": print("軽く散歩でもしましょう。")
さらに別の条件として、天気が「曇り」であるかどうかを
elif
文でチェックします。曇りの場合には、「軽く散歩でもしましょう。」とメッセージが表示されます。
else: print("指定された言葉は天気ではありません。")
else
文はif
およびelif
文のいずれの条件にも当てはまらなかった場合に実行されます。ここでは、ユーザーが「晴れ」「雨」「曇り」以外の入力をした場合に、「指定された言葉は天気ではありません。」と表示されます。
まとめ
このコードは複数の条件に基づいて異なる処理を行うために、
if-elif-else
構文を使用しています。特に
elif
文を使うことで条件を順番にチェックし、条件に合った処理を効率的に実行できます。
FAQ|Pythonのelif文による条件分岐に関するよくある質問
- Q1. elifはifとどう違うのですか?
-
elifは、ifの条件がFalseだった場合に、次の条件をチェックするために使います。複数の条件を連続して評価できる点が特徴です。
- Q2. elifはいくつまで使っても大丈夫ですか?
-
特に上限はありませんが、あまりに多くなるとコードの見通しが悪くなるため、5〜6個程度に抑えた方が実用的です。必要に応じて辞書などで処理を整理する方法もあります。
- Q3. elifの最後にelseは必ず必要ですか?
-
いいえ、elseは任意です。すべての条件をelifでカバーしている場合、elseがなくても問題ありません。ただし、想定外の入力に対応するために入れておくと安心です。
質問用コンタクトフォーム
この記事はAIを用いて書いた記事です。
人間の目による確認も行っていますが、もし間違い等ありましたらご指摘頂けると大変助かります。