elif — несколько вариантов
Когда исходов больше двух — elif проверяет условия по очереди, и первое истинное побеждает.
Когда исходов больше двух
Температура: ниже нуля — «мороз», от 0 до 14 — «прохладно», от 15 до 24 —
«комфортно», иначе — «жарко». Четыре исхода, а не два — здесь if/else
уже не хватает.
temperature = 10
if temperature < 0:
print("мороз")
elif temperature < 15:
print("прохладно")
elif temperature < 25:
print("комфортно")
else:
print("жарко")
elif — сокращение от else if, «а иначе, если». Он
добавляет ещё одно условие между if и
else.
Первое истинное условие побеждает
Python проверяет условия по порядку, сверху вниз, и останавливается на первом истинном — даже если следующие условия тоже подошли бы. Оставшаяся часть цепочки просто пропускается.
Порядок условий имеет значение
score = 95
if score >= 50:
bukva = "D"
elif score >= 90:
bukva = "A" # никогда не выполнится для score >= 50!
score >= 50 стоит первым и 95 >= 50 истинно, Python выбирает именно эту ветку и даже не проверяет score >= 90.Исправление — расположить условия от более строгого к менее строгому:
score = 95
if score >= 90:
bukva = "A"
elif score >= 75:
bukva = "B"
elif score >= 50:
bukva = "C"
else:
bukva = "D"
Постройте elif-лестницу: сумма покупки >= 5000 — скидка 15%, >= 2000 — скидка 10%, >= 500 — скидка 5%, иначе — скидки нет. Проверьте на сумме 3000 — какая скидка выиграет?