Когда программа должна принимать решения, на помощь приходят условные операторы. Давайте разберёмся, как работают elif и else — важные дополнения к основному оператору if.
Представьте, что вы выбираете блюдо в кафе:
if есть 300 рублей:
заказать салат
elif есть 500 рублей:
заказать суп
elif есть 800 рублей:
заказать основное блюдо
Программа проверяет условия сверху вниз и останавливается на первом подходящем варианте. Если какое-то условие сработало, остальные условия даже не проверяются!
if сегодня выходной:
поспать подольше
elif сегодня пятница:
собраться пораньше
else:
встать по будильнику
else — это как запасной выход. Он срабатывает, когда все предыдущие условия оказались ложными.
Важный принцип:
- Если указать операцию после
if(без отступа), она будет выполнена сразу вслед заif - Если указать операцию внутри
else(с отступом), она будет выполнена только в том случае, если ни одно из ранее описанные условия вifиelifне сработало
Как вы решаете, что надеть утром?
if на улице жарко:
надеть футболку
elif на улице прохладно:
надеть кофту
else:
надеть ветровку
Ветровка — это последний вариант, когда ни жарко, ни прохладно.
if age > 18:
print("Совершеннолетний")
elif age > 6:
print("Школьник")
else:
print("Малыш")
Если число равно 10, программа выведет "Школьник", потому что:
- 10 > 18? Нет → переходим к следующему условию
- 10 > 6? Да → выводим результат
- Дальше программа не проверяет
# ОШИБКА: if всегда должен быть в самом начале, далее elif и вконце не более 1 else
elif x > 10:
print("Больше 10")
else:
print("Меньше 5")
if x > 5:
print("Больше 5")
if x > 10:
print("Больше 10")
elif x > 10 and x < 20: # Бесполезная проверка, т.к. до этого условия код уже не доберётся
print("Между 10 и 20")
if x > 0:
print("Положительное") # ОШИБКА синтаксиса: нет отступа перед print() внутри условия if
elif— для дополнительных условий. Их может быть несколько или ни одного, но всегда послеifelse— для всех остальных случаев. Может быть только один и только в самом конце блока условий- Условия проверяются по порядку
- Выполняется только один первый подходящий блок, после чего проверка прерывается и остальные условия игнорируются
Попробуйте придумать свои примеры — это лучший способ разобраться!