Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Pythonのif-elif-else文の紹介 | Pythonのif-elif-else文の習得
Pythonの制御フロー

bookPythonのif-elif-else文の紹介

メニューを表示するにはスワイプしてください

if-elif-else文は、Pythonで複数の条件を判定し、どの条件が真であるかに応じて異なるコードブロックを実行できる強力な構造。複数の条件を評価し、そのうちの1つだけのコードブロックを実行したい場合に特に有用。

複数の条件から選択する必要がある場合、複数のelif文よりもifの使用が推奨される。elifを使うことで、いずれかの条件が満たされた時点で残りの条件の評価がスキップされ、効率が向上する。対照的に、複数のif文を使うとすべての条件が独立して評価されるため、不要なチェックや冗長なコードにつながる可能性がある。

ユーザーの睡眠時間を追跡し、それを異なる範囲に分類する例。ユーザーが睡眠目標を達成したか、目標に近いか、さらに休息が必要かを判定する。

1234567891011
hours_slept = 6 sleep_goal = 8 if hours_slept < 0: print("Sleep hours cannot be negative.") if hours_slept >= sleep_goal: print("Great job! You've met your sleep goal!") if hours_slept >= sleep_goal - 2: print("You're almost there! Keep going, you'll reach your goal soon!") if hours_slept < sleep_goal - 2: print("You need more rest. Try to sleep a bit longer tonight.")
copy

このバージョンでは、すべての条件が独立して評価され、いずれかの条件がすでに真であっても他の条件も判定される。そのため、冗長なチェックが発生する。例えば、ユーザーがすでに目標を達成している場合でも、目標に近いか、さらに休息が必要かどうかも判定される。

1234567891011
hours_slept = 6 sleep_goal = 8 if hours_slept < 0: print("Sleep hours cannot be negative.") elif hours_slept >= sleep_goal: print("Great job! You've met your sleep goal!") elif hours_slept >= sleep_goal - 2: print("You're almost there! Keep going, you'll reach your goal soon!") else: print("You need more rest. Try to sleep a bit longer tonight.")
copy

elif を使用することで、コードの可読性と効率性が向上します。一度条件が満たされると、それ以降の条件はチェックされません。

この図は、Python における if-elif-else の意思決定構造の流れを視覚化したものです。プロセスは最初の if 条件の評価から始まります。

  • 最初の条件が true の場合、if ブロック内のコードが実行されます。
  • 最初の条件が false の場合、次の条件である elif に進みます。elif 条件が true の場合、対応する elif ブロックが実行されます。
  • 最初の eliffalse の場合、さらに別の elif をチェックでき、その条件が true であれば、そのコードブロックが実行されます。
  • すべての if および elif 条件が満たされない(すべて false の)場合、最後の else ブロックが実行され、必ずいずれかのコードブロックが実行されます。

この流れにより、最初に真となる条件のみが実行され、複数の条件を効率的に処理できます。if-elif-else 構造は冗長なチェックを避け、全体の中で一つのコードブロックだけが実行されます。

1. 複数のif-elif-else文の代わりにifを使用する利点は何ですか?

2. 次のコードから何が出力されますか?

question mark

複数のif-elif-else文の代わりにifを使用する利点は何ですか?

正しい答えを選んでください

question mark

次のコードから何が出力されますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  1

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  1
some-alt