Глава 9 · Выполняй мою команду!
Вложенные условия
Условие внутри условия — и когда его стоит упростить одним and вместо глубокой вложенности.
Условие внутри условия
Внутри блока if может быть ещё один
if — это называется вложенным условием. Решим
задачу входа в аккаунт целиком, одной схемой.
vlozhennye_usloviya.py
has_account = True
password_ok = False
if has_account:
if password_ok:
print("Добро пожаловать")
else:
print("Неверный пароль")
else:
print("Зарегистрируйтесь")
Уровни отступа = уровни вложенности
Каждый дополнительный уровень отступа означает более глубокий уровень условной проверки:
urovni_otstupa.py
# уровень 0
if has_account:
# уровень 1
if password_ok:
# уровень 2
print("...")
Не увлекайтесь глубокой вложенностью
Три-четыре уровня вложенных if подряд («пирамида») читать становится тяжело. Часто часть условий можно объединить оператором
and — как показано ниже.Упрощаем: вложенность → and
Вложенные условия vs один and
Вложенные if
if has_account:
if password_ok:
print("Login")
Один if с and
if has_account and password_ok:
print("Login")
Что использовать сегодня: Оба варианта корректны и в этом простом случае дают одинаковый результат. Вложенный вариант удобен, когда каждой ветке нужна СВОЯ отдельная обработка (например, разные сообщения для «нет аккаунта» и «неверный пароль», как в примере ниже). Один
and компактнее, когда обе ветки нужны только вместе — выбор между ними определяется читаемостью, а не «правильностью» одного варианта.★★ Самостоятельная задача
Третий уровень
Добавьте третий уровень вложенности: внутри «Добро пожаловать» проверьте ещё и is_active (аккаунт не заблокирован) — если False, выведите «Аккаунт заблокирован».
Практика: вложенные условия
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки