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

Если это произошло — выполни команду!

Первый настоящий условный оператор: код, который выполняется только при определённых обстоятельствах — сначала как схема, потом на Python.

Сначала схема, потом код

Возьмём задачу: «если температура ниже нуля, показать „мороз“». Прежде чем писать Python, решим её как схему:

СТАРТtemperaturetemperature <0?ДА"мороз"НЕТКОНЕЦ
Сначала решаем задачу как схему — потом переводим на Python

Где здесь вопрос? Какая ветка выполнится? Что произойдёт, если условие ложно? Только когда ответы понятны — переводим схему на Python.

Первый if

if_prostoj.py
temperature = -5

if temperature < 0:
    print("Мороз")

Разберём по словам:

Полный пример с обеими ветками

if.py
age = 20

if age >= 18:
    print("Доступ разрешён.")
СТАРТtemperaturetemperature <0?ДА"Мороз"НЕТПродолжаем программуКОНЕЦ
Первый if — при False блок просто пропускается, выполнение идёт дальше

Если условие ложно, блок if просто пропускается — программа не «падает», не выдаёт ошибку, а идёт дальше как ни в чём не бывало. Ложное условие не означает «программа остановилась»: она продолжает выполнение со следующего шага.

Отступ — это часть программы

В Python отступ — не просто оформление для красоты. Именно отступом Python определяет, какие строки относятся к блоку if, а какие уже нет:

blok_komand.py
if temperature < 0:
    print("На улице мороз.")
    print("Наденьте тёплую куртку.")
    print("Не забудьте перчатки.")

print("Программа закончена")

Первые три команды имеют одинаковый отступ — все они относятся к блоку if. Последняя строка отступа не имеет — она выполнится всегда, независимо от условия.

Рекомендация: 4 пробела
Стандартный отступ в Python — 4 пробела на один уровень вложенности. Не смешивайте пробелы и табуляцию в одном файле — Python в некоторых случаях сочтёт это ошибкой.

IndentationError

Если забыть про отступ — Python не сможет понять, что относится к блоку:

indentationerror.py
if age >= 18:
print("OK")
# IndentationError: expected an indented block after 'if' statement

Исправление: добавить отступ перед print.

А иначе? — if/else

else задаёт блок кода, который выполнится, если условие оказалось ложным:

if_else.py
age = 15

if age >= 18:
    print("Доступ разрешён.")
else:
    print("Доступ запрещён — вам ещё нет 18.")
СТАРТageage >= 18?ДА"Доступ разрешён"НЕТ"Доступ запрещён"КОНЕЦ
if/else: два пути — один из них выполнится обязательно, и оба сходятся дальше

Ветки снова сходятся

Какая бы ветка ни выполнилась — if или else — дальше программа обычно продолжается с одного и того же следующего шага. На схеме выше это видно по стрелкам, сходящимся в общую точку перед КОНЕЦ.

Практика: первый if, отступ и if/else
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →