elif文とは?
elifとは「else if」の省略形で、複数の条件を順番にチェックする際に使用する条件分岐文です。
日常生活で考えると、「もし雨なら傘を持つ、そうでなくて曇りなら上着を着る、そうでなくて晴れなら帽子をかぶる」のように、複数の状況に応じて段階的に判断することがありますよね。
Pythonのelif文も同じような使い方ができます。
elif文の特徴
- if文で最初の条件をチェックし、それが当てはまらない場合にelif文で次の条件をチェックする
- 全ての条件が当てはまらない場合は、最後のelse文が実行される
- elif文は必要な数だけ連続して記述できる
- 上から順番に条件がチェックされ、最初に当てはまった条件のブロックのみが実行される
- 複雑な条件判定を効率的に処理できる
プログラムの流れを制御し、異なる状況に応じて適切な処理を実行させるために欠かせない機能です。
【関連】
Pythonをもっと詳しく学ぶならpaizaラーニング
基本構文
elif文の基本的な構文は、if文の後にelif文を続けて記述します。最初にif文で条件をチェックし、当てはまらない場合は次のelif文の条件を評価します。
具体的にコードを書いてみると、下記のような形です。
出力結果:
良いイヌです
この例では、scoreが85なので、最初の条件score >= 90は当てはまらず、次の条件score >= 70が当てはまるため、「良いイヌです」が表示されます。
プログラムの流れ
- score >= 90をチェック(85 >= 90は当てはまらない)
- score >= 70をチェック(85 >= 70は当てはまる)
- 「良いイヌです」を表示して処理終了
次の例では、文字列の値による条件判定を行います。複数のelif文を使用して、天気の状態に応じて異なる動物の行動を表示しています。
出力結果:
カエルが喜んでいます
このように、数字でも文字列の比較でもelif文を使えば、その条件に応じて出力結果を分岐させることができるのです。
実用例
ここからは実際のコード例を通して、elif文がどのような場面で使われるかを見ていきましょう。
これから紹介するコード例は、すべて実際に動かすことができます。実際にコードを動かしてみると、より理解が深まるはずです。
動物を題材にした身近な例を中心に、段階的に説明していきますので、一つずつ試してみてください。
年齢による動物の分類
年齢の値によって異なる動物を表示する条件分岐の例です。数値の範囲判定でelif文を活用し、段階的な条件チェックができます。
出力結果:
大人のライオンです
この例では、ageが25なので、3番目の条件age < 60で当てはまり、「大人のライオンです」が表示されます。
プログラムの流れ
- age < 10をチェック(25 < 10は当てはまらない)
- age < 20をチェック(25 < 20は当てはまらない)
- age < 60をチェック(25 < 60は当てはまる)
- 「大人のライオンです」を表示して処理終了
最後の条件文は判定されないという点も認識しておきましょう。
このパターンは、年齢層の分類や成績のランク付けなど、数値による段階的な判定でよく使用されます。
成績による評価システム
点数に基づいて成績を評価するプログラムです。数値の範囲によって異なる評価を返します。
学習管理システムなどで有用な判定ロジックです。
出力結果:
Cランクのウマです
この例では、scoreが78なので、3番目の条件score >= 70が当てはまり、Cランクだと判定されます。
季節による動物の行動
複数の値に対する条件判定で、elif文を活用している例です。月の数値から季節を判定し、その季節に合った動物の行動を表示します。
出力結果:
海で泳ぐペンギンです
この例では、monthが7なので、3番目の条件month in [6, 7, 8]に当てはまります。
プログラムの流れ
- month in [12, 1, 2]をチェック(7は冬の月ではないので当てはまらない)
- month in [3, 4, 5]をチェック(7は春の月ではないので当てはまらない)
- month in [6, 7, 8]をチェック(7は夏の月なので当てはまる)
- 「海で泳ぐペンギンです」を表示
in演算子は、ある値がリストや文字列の中に含まれているかをチェックする便利な機能です。
値 in [選択肢1, 選択肢2, 選択肢3]
という形で使います。
この例のmonth in [6, 7, 8]は、monthの値がリスト内のいずれかの値と一致するかをチェックしています。
つまり、「monthが6、7、8のいずれかに当てはまるか」を確認しているのです。
複数の値をまとめて条件として使えるので便利です。ここで押さえておきましょう。
時間帯による挨拶メッセージ
現在の時刻に応じて、適切な挨拶を表示するプログラムです。時間の判定を行い、その時間帯に合わせた動物の挨拶メッセージを出力します。
出力結果:
昼間のハチです
この例では、hourが14なので、3番目の条件hour < 18に当てはまります。
簡潔な形として、hourを固定した数値にしていますが、実際にはリアルタイムを取得して判定するような形がよく見られます。
BMI値による健康状態判定
BMI値を計算して健康状態を判定するプログラムです。健康管理アプリケーションなどで使用される判定ロジックを実装しています。
出力結果:
標準体重のシマウマです
この例では、bmiが22.5なので、2番目の条件bmi < 25で当てはまります。
温度による動物の状態
気温の値によって動物の状態を表現するプログラムです。温度センサーからの値を判定し、適切な状態メッセージを表示する用途で活用できます。
出力結果:
暑がりのイヌです
この例では、temperatureが35なので、全ての条件が当てはまらず、else文が実行されます。
曜日による動物の活動
曜日の番号から動物の活動パターンを表示するプログラムです。カレンダーアプリケーションや予定管理システムで使用される曜日判定の基本的な実装例です。
出力結果:
平日の働くアリです
この例では、1を月曜日として日曜日までを7つの数字に割り当てるようなイメージで記述されています。
この例では、day_of_weekが3で、どの特定の条件にも当てはまらず、else文が実行されます。
実際のカレンダーのアプリケーションや予定管理システムでも、このように曜日を数字で管理することがよくあります。
数値の正負と大小判定
数値が正数、負数、ゼロかを判定し、さらに大きさによって異なる動物を表示します。より数学的な判定処理でelif文を活用した例です。
出力結果:
負の数のモグラです
この例では、numberが-5なので、全ての条件が当てはまらず、else文が実行されています。
まとめ
Pythonのelif文は、複数の条件を効率的に処理する重要な制御構文です。この記事では、基本的な使い方から実際の活用例まで解説しました。
elif文が活用できるような場面は次のようなケースです。
elif文が活躍する場面
- 数値の範囲に応じて異なる処理をしたいとき
- 複数の選択肢から一つを選んで処理したいとき
- 段階的な条件判定が必要なとき
- 文字列の値に応じて処理を分けたいとき
- 複雑な条件ロジックを整理したいとき
elif文を用いる上で、押さえておきたいポイントを覚えておきましょう。
重要なポイント
- if文の後にelif文を続けて記述する
- 上から順番に条件がチェックされ、最初に当てはまった条件のブロックのみが実行される
- elif文は必要な数だけ連続して記述できる
- 全ての条件が当てはまらない場合は、最後のelse文が実行される
- 数値比較だけでなく、文字列比較やin演算子との組み合わせも可能
初めてPythonを学ぶ方も、この記事で紹介したelif文を実際に書いて、基本的な使い方を試してみてください。
複数の条件を処理するコードは、実際の開発で想像以上によく使用されます。マスターしておけば役立つこと間違いなしです。
ぜひelif文をマスターして、より複雑で実用的なプログラムを作成できるようになりましょう。