Python
If, else и elif в Python
if, elif и else в Python управляют ветвлением: программа проверяет условия сверху вниз и выполняет первый подходящий блок
Эти конструкции нужны для проверки ввода, скидок, статусов, прав доступа, ошибок и любых ситуаций, где поведение зависит от данных
По этой теме полезно отдельно посмотреть Составьте еженедельное расписание занятий, чтобы расширить контекст и сравнить подходы
По этой теме полезно отдельно посмотреть Аннотации типов для декораторов в Python, чтобы расширить контекст и сравнить подходы
Базовый пример
score = 76
if score >= 90:
print('отлично')
elif score >= 60:
print('зачет')
else:
print('повторить')
Вывод:
зачет
Python проверяет первое условие. Если оно ложное, переходит к elif. Если ни одно условие не подошло, выполняется else
Порядок условий важен
Плохой порядок:
score = 95
if score >= 60:
print('зачет')
elif score >= 90:
print('отлично')
Для 95 программа выведет зачет, потому что первое условие уже подошло
Правильнее:
score = 95
if score >= 90:
print('отлично')
elif score >= 60:
print('зачет')
else:
print('повторить')
Более точные условия обычно ставят выше
Сравнения
x == y
x != y
x > y
x >= y
x < y
x <= y
== сравнивает значения
= присваивает значение переменной
Одна из частых ошибок новичков — случайно путать эти записи
and, or, not
age = 20
has_ticket = True
if age >= 18 and has_ticket:
print('можно войти')
and требует выполнения обоих условий
or требует хотя бы одно истинное условие
not переворачивает логическое значение
is_blocked = False
if not is_blocked:
print('доступ открыт')
Проверка ввода
name = input('Имя: ').strip()
if not name:
print('имя не введено')
else:
print(f'Привет, {name}')
Пустая строка считается ложным значением, поэтому if not name удобно использовать для проверки ввода
Валидация заказа
total = 1200
is_paid = True
if total <= 0:
print('пустой заказ')
elif not is_paid:
print('ожидает оплаты')
else:
print('можно отправлять')
Этот пример ближе к реальной логике: сначала проверяются ошибки, потом нормальный сценарий
Вложенный if или elif
Вложенный вариант:
age = 20
has_ticket = True
if age >= 18:
if has_ticket:
print('можно войти')
Часто его можно заменить более простой записью:
if age >= 18 and has_ticket:
print('можно войти')
Вложенность нужна не всегда. Если код уходит слишком далеко вправо, проверьте, можно ли упростить условия
Частые ошибки
- забывать двоеточие после условия
- ставить неправильные отступы
- путать
=и== - писать условия в неверном порядке
- делать слишком длинное условие в одну строку
- проверять только один идеальный случай
- забывать ветку
else, когда нужен понятный ответ для остальных случаев
Практика
Сделайте три задачи
- Проверка возраста: до 18, от 18 до 64, 65 и старше
- Скидка: от 5000 рублей — 5%, от 10000 — 10%
- Ввод имени: пустое имя не принимается
Что читать дальше
Для ввода данных пользователем откройте Input в Python: как получить данные от пользователя
Для повторения базовых конструкций пригодится Шпаргалка по Python
if, elif и else позволяют Python выбирать поведение по условиям
Проверки идут сверху вниз, поэтому порядок условий важен. Сначала ставьте более точные или критичные проверки, а в else оставляйте общий вариант