Глава 9 · Выполняй мою команду!

Вложенные условия

Условие внутри условия — и когда его стоит упростить одним and вместо глубокой вложенности.

Условие внутри условия

Внутри блока if может быть ещё один if — это называется вложенным условием. Решим задачу входа в аккаунт целиком, одной схемой.

СТАРТhas_account?ДАpassword_ok?ДА"Добро пожаловать"НЕТ"Неверный пароль"НЕТ"Зарегистрируйтесь"КОНЕЦ
Вложенное условие: password_ok проверяется только внутри ветки has_account = True
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, без установки
Открыть практику →