Pythonのelif
は、if文に書かれた条件と一致しなかった場合に、別の条件との一致確認を行うための構文です。例えば、「18歳以上の男性」もしくは「16歳以上の女性」という条件でチェックを行いたい場合に、「18歳以上の男性か」のチェックをif文で、「16歳以上の女性か」のチェックをelif文で行うというイメージです。
if … elif … elseの書き方
if … elif … elseは、同じ階層 (インデント)で並べて書きます。
if 条件A:
処理A
elif 条件B:
処理B
else:
処理C
上記のように書くと、以下のような処理になります。
- 条件A に一致する場合は処理A
- 条件A には一致しないが、条件B には一致する場合は処理B
- 条件A, B のどちらにも一致しない場合は処理C
気を付けておきたいのが「条件A, Bのどちらにも一致する場合」ですが、この場合には条件Aの判定文が先に処理されるため処理Aが実行されます。判定条件の優先度を考えて if … elif … elseの条件を書くように注意しましょう。
実際に書いてみよう
以下の条件で処理を行うコードを書いてみましょう。
- 「変数aが10以上」であれば、aを2倍した値を表示
- 「変数aが-10以下」であれば、aを-3倍した値を表示
- 「それ以外」であれば、aをそのまま表示
def check_value(a):
if a >= 10:
print(a * 2)
elif a <= -10:
print(a * -3)
else:
print(a)
a = -15
check_value(a) # => -45
a = -15で実行すると、最初にif a >= 10のチェックを行い一致しないので次の条件へ、続けてelif a <= -10のチェックを行い一致するので-3倍した値を出力、という流れになります。