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

Несколько if ≠ if/elif/else

Очень частая путаница у новичков: несколько отдельных if могут сработать все разом, а в цепочке elif — только один.

Блок команд и невидимый указатель

Ветка условия может содержать несколько команд — мы это уже видели. Полезно представлять, что Python держит невидимый «указатель»: какую команду выполнить следующей. В линейной программе он просто идёт вниз строка за строкой; при if он выбирает, в какую ветку «зайти».

Это упрощённая мысленная модель
Внутри компьютера существует похожая идея (её называют «поток управления» — control flow), но для наших целей достаточно этой простой картинки: команды идут по порядку, а if/elif/else временно направляет поток в одну из веток.

Поток управления

Поток управления — это порядок, в котором на самом деле выполняются команды программы. До этой главы он был почти всегда прямой линией сверху вниз. Теперь он может разветвляться. В главе 10 он научится ещё и возвращаться назад — повторяться.

Несколько if — это НЕ то же самое, что if/elif/else

Это одна из самых частых путаниц у новичков — разберём её на конкретном примере:

Независимые if против цепочки if/elif
Два НЕЗАВИСИМЫХ if
temperature = 30

if temperature > 20:
    print("тепло")

if temperature > 25:
    print("жарко")

# ОБА условия истинны —
# ОБЕ строки напечатаются!
Цепочка if / elif
temperature = 30

if temperature > 25:
    print("жарко")
elif temperature > 20:
    print("тепло")

# только ОДНА ветка
# в этой цепочке выполнится
Что использовать сегодня: Каждый самостоятельный if проверяется независимо от остальных — Python может выполнить несколько таких блоков подряд. А в цепочке if/elif/else выполняется РОВНО ОДНА ветка — первая истинная. Это очень частая путаница у новичков: если нужен «выбор одного варианта из нескольких» — нужна именно цепочка elif, а не несколько отдельных if.
★★ Самостоятельная задача
Найдите разницу

Возьмите score = 85. Постройте вариант с тремя независимыми if (score > 50, score > 70, score > 90) и вариант с elif-цепочкой на тех же условиях. Сравните, сколько строк напечатает каждый вариант.

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