Множественное ветвление с elif
Уроки курсаМножественное ветвление с elif
В прошлом уроке вы научились разбивать программу на два пути: если условие истинно — один блок, иначе — другой. Конструкция if/else хорошо работает, пока вариантов ровно два. Но что делать, когда их три, четыре или больше? Именно здесь появляется elif.
От if/else к elif: зачем нужна третья ветвь
Представьте, что нужно классифицировать балл не в два варианта (сдал / не сдал), а в четыре: отлично, хорошо, удовлетворительно, неудовлетворительно. Если пытаться решить это только через if/else, придётся вкладывать один блок else внутрь другого:
score = int(input('Балл: '))
if score >= 90:
print('Отлично')
else:
if score >= 75:
print('Хорошо')
else:
if score >= 60:
print('Удовлетворительно')
else:
print('Неудовлетворительно')
Код работает, но с каждым новым вариантом уровень вложенности растёт вправо. Уже на четвёртом уровне читать это неудобно, а на шестом — почти невозможно.
Для таких ситуаций в Python есть ключевое слово elif — сокращение от else if. Оно позволяет добавить новое условие на том же уровне отступа, что и исходный if, без вложенности:
score = int(input('Балл: '))
if score >= 90:
print('Отлично')
elif score >= 75:
print('Хорошо')
Синтаксис elif повторяет синтаксис if: ключевое слово, пробел, логическое условие, двоеточие — и тело блока с отступом в четыре пробела. Заголовок elif пишется на том же уровне отступа, что и if, а не внутри него.
Логика выполнения проста: Python сначала проверяет условие if. Если оно ложно — переходит к elif и проверяет его условие. Блок elif выполняется только тогда, когда все предшествующие проверки оказались ложными, а текущее условие — истинно. Количество ветвей elif не ограничено: можно добавить столько, сколько нужно вариантов.
Ключевой момент: elif — это не самостоятельная инструкция. Она всегда привязана к предшествующему if и не может стоять отдельно. Без if перед ней Python выдаст синтаксическую ошибку.
