Условные конструкции в Python: с чего начать новичку
За полчаса вы научитесь писать if, elif и else в Python 3.12, проверять условия и избегать четырёх ошибок, на которых спотыкаются все, кто открыл язык впервые.

Что вы получите в конце
К концу этого текста у вас будет рабочий скрипт, который спрашивает число и отвечает по-разному в зависимости от того, что вы ввели: отрицательное, ноль или положительное. Разберём, как Python принимает решения через if, elif и else, как соединять несколько условий и почему отступы здесь не оформление, а синтаксис. На всё уйдёт минут двадцать-тридцать, если параллельно набирать код руками, а не только читать.
Всё написано для Python 3.x (проверялось на 3.12). Синтаксис условий в этой части языка стабилен уже много лет, так что на 3.10 и 3.11 всё сработает так же. Единственное исключение — конструкция match, она появилась в 3.10; о ней в конце одной строкой.
Что нужно до начала
- Установленный Python 3.x. Проверьте командой
python --versionв терминале — должна вывестись строка видаPython 3.12.4. Если пишет, что команда не найдена, попробуйтеpython3 --version. - Любой текстовый редактор или IDE: VS Code, PyCharm, даже «Блокнот» подойдёт для старта.
- Умение запускать файл: сохранить как
check.pyи выполнитьpython check.pyв той же папке.
Больше ничего ставить не нужно: if — часть самого языка, не библиотека.
Шаг 1. Первое условие
Условие — это вопрос, на который Python отвечает «да» или «нет». Если «да», выполняется блок под if. Наберите и запустите:
# check.py — Python 3.12
temperature = 25
if temperature > 20:
print("Тепло")
В терминале появится строка Тепло. Двоеточие после условия обязательно, а строка print сдвинута вправо на четыре пробела — это отступ, он и говорит Python, что именно относится к if. Поменяйте 25 на 15 и запустите снова: теперь не выведется ничего, потому что условие ложно, а других веток нет.
Операторы сравнения
Внутри условия сравнивают значения. Вот те, что нужны с первого дня:
| Оператор | Смысл | Пример, который истинен |
|---|---|---|
== | равно | 3 == 3 |
!= | не равно | 3 != 4 |
> | больше | 5 > 2 |
< | меньше | 2 < 5 |
>= | больше или равно | 5 >= 5 |
<= | меньше или равно | 4 <= 5 |
Одиночное = — это не сравнение, а присваивание. Их путают чаще всего; ниже вернёмся к этому.
Шаг 2. Ветка «иначе»
Чтобы обработать случай, когда условие ложно, добавьте else:
temperature = 15
if temperature > 20:
print("Тепло")
else:
print("Прохладно")
Запустите — выведется Прохладно. Теперь ответ есть в любом случае: либо срабатывает блок if, либо блок else, третьего не дано. У else нет собственного условия, поэтому после него сразу двоеточие.
Шаг 3. Несколько веток через elif
Когда вариантов больше двух, между if и else ставят одну или несколько веток elif — сокращение от «else if». Соберём итоговый скрипт:
# check.py — Python 3.12
# Спрашиваем число и отвечаем по знаку
raw = input("Введите число: ")
number = int(raw) # переводим строку в целое число
if number < 0:
print("Число отрицательное")
elif number == 0:
print("Это ноль")
else:
print("Число положительное")
Запустите python check.py, введите -7 и нажмите Enter — появится Число отрицательное. Введите 0 — Это ноль. Введите 42 — Число положительное. Python проверяет ветки сверху вниз и останавливается на первой истинной, остальные не смотрит.
input всегда возвращает строку, поэтому int(raw) обязателен: без него number < 0 сравнило бы текст с числом и упало бы с ошибкой.
Шаг 4. Несколько условий сразу
Условия соединяют словами and (нужны оба) и or (достаточно любого). Слово not переворачивает результат.
age = 25
has_ticket = True
if age >= 18 and has_ticket:
print("Проход разрешён")
else:
print("Проход закрыт")
Здесь оба условия истинны, поэтому выведется Проход разрешён. Поставьте has_ticket = False — и результат сменится на Проход закрыт, потому что для and нужны обе части сразу.
Отступ в Python — не про красоту, а про смысл. Строки с одинаковым отступом образуют один блок; сдвинули строку не туда — и она попадёт в другую ветку или вообще выпадет из условия.
Если не получилось
Четыре ошибки, которые видят почти все на старте, и что они означают:
- IndentationError: expected an indented block — после двоеточия вы не сделали отступ. Строка под
ifдолжна начинаться с пробелов. Ставьте ровно четыре пробела и не смешивайте их с табами. - SyntaxError: invalid syntax с указателем на конец строки
if— забыли двоеточие после условия. Оно нужно послеif,elifиelse. - SyntaxError: invalid syntax на
if x = 5:— написали одиночное=вместо==. Для сравнения всегда двойное. - ValueError: invalid literal for int() with base 10: 'abc' — в
int()попал текст, который не число. Вводите цифры; проверку ввода добавите позже, когда освоите обработку ошибок.
Про табы и пробелы
Если редактор подставляет то табы, то пробелы, Python может выдать TabError. Включите в редакторе замену табов на пробелы — в VS Code это настройка «Insert Spaces», в PyCharm отступ по умолчанию уже пробельный. Официальный стиль PEP 8 рекомендует четыре пробела.
Что делать дальше
Когда три ветки перестанут пугать, посмотрите на две вещи. Первая — цикл for и while: условия внутри циклов работают так же, но выполняются многократно. Вторая — тернарное выражение x if условие else y, короткая запись для присваивания по условию. Проверку сравнения нескольких значений на одном объекте (то, что в других языках делает switch) в Python 3.10 и новее закрывает конструкция match — отдельная тема, сюда не влезающая. Базовый синтаксис условий смотрите в официальной документации Python по ссылке ниже.
Локализатор видео: Перевод и озвучка видео на другой язык с укладкой в исходный тайминг. Глоссарий терминов, отметки проблемных реплик.
Спросить за 250 ₽Источники: Python docs — More Control Flow Tools (if statements), PEP 8 — Style Guide for Python Code
Частые вопросы
Что делать, если у меня Python 3.8 или 3.9, а не 3.12?
Скрипт запускается, но ничего не выводит — почему?
В чём разница между = и == ?
Обязательно ли писать else после каждого if?
Сколько elif можно поставить в одной конструкции?
Почему важны именно четыре пробела для отступа?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.