この記事で学べる知識:条件分岐(if-elif-else文)
この記事の練習問題で使用する知識:
入力と出力の基本、コメントの書き方、変数の宣言と代入、基本データ型と算術演算子、文字列の操作、フォーマット文字列、比較演算子と論理演算子、条件分岐(if-else文)、条件分岐(elif文)、条件分岐(match文)、繰り返し処理(for文)、繰り返し処理(while文)、繰り返しの制御、エラーメッセージ、例外処理の基礎
<<前の問題 | 問題集Top |
次の問題>> |
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
の構造を使ってコードを簡潔かつ読みやすくすることができます。
これにより複雑なロジックもシンプルに記述でき、プログラムの保守性も向上します。
Python練習問題2-3:条件分岐(elif文)を使って天気によって行動を決めるプログラムを作ろう
天気を元に、その日の行動を決めるプログラムを作成してください。
この問題の要件
以下の要件に従ってコードを完成させてください。
input
関数を使って、ユーザーから天気(「晴れ」「雨」「曇り」)を入力してもらうこと。- 条件分岐(
if-elif-else
文)を使用して、入力された天気に応じたメッセージを表示すること。 - 入力された天気が「晴れ」の場合は「外出しましょう」、天気が「雨」の場合は「家にいましょう」、天気が「曇り」の場合は「軽く散歩でもしましょう」と表示すること。
- それ以外の言葉が入力された場合は「指定された言葉は天気ではありません」と表示すること。
ただし、以下のような実行結果となるコードを書くこと。
*****↓↓正解コードの実行結果の例↓↓*****
今日の天気はどうですか(晴れ/雨/曇り)?: 晴れ 外出しましょう!
今日の天気はどうですか(晴れ/雨/曇り)?: 雨 家にいましょう。
今日の天気はどうですか(晴れ/雨/曇り)?: 曇り 軽く散歩でもしましょう。
今日の天気はどうですか(晴れ/雨/曇り)?: こんにちは 指定された言葉は天気ではありません。
この問題を解くヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
正解のコードは上から順に以下のような構成となっています。
1.ユーザーからの入力を受け取る部分
1-1. input
関数を使ってユーザーから天気を入力
1-2. 入力された天気を変数 weather
に格納
2.条件分岐(if-elif-else
文)
2-1. if
文で天気が「晴れ」の場合の処理を実行
2-2. elif
文で天気が「雨」の場合の処理を実行
2-3. elif
文で天気が「曇り」の場合の処理を実行
2-4. それ以外の天気が入力された場合のelse
文を実行
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
# 天気によって行動を決めるプログラム # 使用する文法: 条件分岐(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
文を使うことで条件を順番にチェックし、条件に合った処理を効率的に実行できます。
<<前の問題 |
問題集Top |
次の問題>> |
この記事への質問・コメント
この記事を作成するにあたりAIを活用しています。
問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。