Условие if в Python: if, elif, else, and и or с примерами
Как работает условие if в Python: синтаксис с двоеточием и отступом, elif и else, сравнения, and, or и not, вложенные условия и частые ошибки новичков.
Перейти к практике по теме курса ↓
Условие if выполняет блок кода, только если выражение истинно: if условие:, а под ним — строки с отступом в четыре пробела. Для других случаев добавляют elif («иначе если») и else («иначе»). Двоеточие в конце строки и одинаковый отступ обязательны: именно по отступу Python понимает, что относится к условию.
age = 15
if age >= 18:
print("Взрослый билет")
elif age >= 7:
print("Детский билет")
else:
print("Бесплатно")
Сравнения
Сравнивают знаками == (равно), != (не равно), >, <, >=, <=. Одно = — это присваивание, а не сравнение: if x = 5 выдаст ошибку. Проверка вхождения — in: if "@" in email:. Python умеет цепочки: if 10 <= n <= 30: — число от 10 до 30.
and, or, not
and — должны выполниться оба условия: if n % 2 == 0 and n > 0: — положительное чётное. or — достаточно одного: if n % 4 == 0 or n // 10 == n % 10: — делится на 4 или у двузначного числа одинаковые цифры. not переворачивает условие: if not text: — строка пустая.
Как это работает в цикле
Чаще всего if стоит внутри цикла: перебрать числа и посчитать подходящие.
count = 0
for n in range(10, 31):
if n % 4 == 0 or n // 10 == n % 10:
count += 1
print(count)
Здесь n % 4 — остаток от деления на 4, n // 10 — десятки, n % 10 — единицы. Счётчик растёт только для чисел, подошедших под условие.
Частые ошибки
Забытое двоеточие — SyntaxError. Разные отступы в одном блоке — IndentationError. Порядок elif важен: проверяется первое подошедшее условие, остальные пропускаются, поэтому строгие условия ставят выше мягких.
Частые вопросы
Чем elif отличается от второго if?
Elif проверяется только если предыдущие условия не выполнились, и сработает максимум одна ветка. Несколько отдельных if проверяются все подряд и могут сработать одновременно.
Обязательно ли писать else?
Нет, else нужен, только если в остальных случаях что-то должно произойти. Условие if может стоять и без elif и else.
Почему Python ругается на отступ?
Строки внутри условия должны быть сдвинуты одинаково, обычно на четыре пробела. Смешанные пробелы и табуляция или разный сдвиг в одном блоке вызывают ошибку отступа.
Где потренироваться
Условиям посвящён урок «Условия», циклу — «Цикл for и range» курса Python; код в них запускается прямо на странице. Задачи без регистрации — в тренажёре Python. Счётчики и range подробно — в статье «Цикл for и range в Python».
Попробуйте задание из курса
Откройте первый урок: теория и начало практики доступны без регистрации.