Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save Eugene-Fed/371047acb6e6b4d4021425d26ff96473 to your computer and use it in GitHub Desktop.

Select an option

Save Eugene-Fed/371047acb6e6b4d4021425d26ff96473 to your computer and use it in GitHub Desktop.

Дополнения к условному оператору if

Когда программа должна принимать решения, на помощь приходят условные операторы. Давайте разберёмся, как работают elif и else — важные дополнения к основному оператору if.

Концепт: elif

Как это понять?

Представьте, что вы выбираете блюдо в кафе:

if есть 300 рублей:
    заказать салат
elif есть 500 рублей:
    заказать суп
elif есть 800 рублей:
    заказать основное блюдо

Программа проверяет условия сверху вниз и останавливается на первом подходящем варианте. Если какое-то условие сработало, остальные условия даже не проверяются!

Ещё пример

if сегодня выходной:
    поспать подольше
elif сегодня пятница:
    собраться пораньше
else:
    встать по будильнику

Концепт: else

Зачем он нужен?

else — это как запасной выход. Он срабатывает, когда все предыдущие условия оказались ложными.

Важный принцип:

  • Если указать операцию после if (без отступа), она будет выполнена сразу вслед за if
  • Если указать операцию внутри else (с отступом), она будет выполнена только в том случае, если ни одно из ранее описанные условия в if и elif не сработало

Пример из жизни

Как вы решаете, что надеть утром?

if на улице жарко:
    надеть футболку
elif на улице прохладно:
    надеть кофту
else:
    надеть ветровку

Ветровка — это последний вариант, когда ни жарко, ни прохладно.

Как читать код

if age > 18:
    print("Совершеннолетний")
elif age > 6:
    print("Школьник")
else:
    print("Малыш")

Если число равно 10, программа выведет "Школьник", потому что:

  1. 10 > 18? Нет → переходим к следующему условию
  2. 10 > 6? Да → выводим результат
  3. Дальше программа не проверяет

Частые ошибки

1. Неправильный порядок

# ОШИБКА: if всегда должен быть в самом начале, далее elif и вконце не более 1 else
elif x > 10: 
    print("Больше 10")
else:
    print("Меньше 5")
if x > 5:
    print("Больше 5")

2. Лишние условия

if x > 10:
    print("Больше 10")
elif x > 10 and x < 20:  # Бесполезная проверка, т.к. до этого условия код уже не доберётся
    print("Между 10 и 20")

3. Отсутствие отступов

if x > 0:
print("Положительное")  # ОШИБКА синтаксиса: нет отступа перед print() внутри условия if

Главное запомнить

  • elif — для дополнительных условий. Их может быть несколько или ни одного,  но всегда после if 
  • else — для всех остальных случаев. Может быть только один и только в самом конце блока условий
  • Условия проверяются по порядку
  • Выполняется только один первый подходящий блок, после чего проверка прерывается и остальные условия игнорируются

Попробуйте придумать свои примеры — это лучший способ разобраться!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment