Представьте: ваш ребёнок пишет программу, которая проверяет, сдан ли тест. Программа должна вывести «Молодец!» при хорошем результате и «Попробуй ещё» — при плохом. Без одной конструкции это вообще невозможно. Эта конструкция — оператор if в Питоне, и без него не работает ни одна мало-мальски осмысленная программа.
Условный оператор if — это способ сказать компьютеру: «Смотри на ситуацию и решай, что делать дальше». Именно так устроена логика любого приложения, игры, бота или алгоритма. В этой статье разберём, как он устроен, как читается и как его начинают использовать ребята в Стартории уже на первых занятиях.
Прежде чем говорить о синтаксисе — пара слов о том, зачем вообще нужны условия (conditional).
В большинстве языков программирования для этого есть специальный инструмент — условный оператор. В Python он называется if, и его синтаксис намеренно сделан похожим на обычное человеческое предложение: «если… то…».
Самая простая форма выглядит так:
if условие:
# блок кода, который выполняется, если условие истинно
Разберём на конкретном примере:
score = 85
if score >= 60:
print("Тест сдан!")
Здесь score — переменная, 85 — её значение (value). Выражение score >= 60 проверяется интерпретатором: если оно истинно, выполняется блок внутри. Если нет — программа просто идёт дальше, ничего не делая.
Именно этот принцип делает код на Python визуально читаемым и аккуратным.
Базовый оператор if обрабатывает только один сценарий. Но что, если нужно предусмотреть и противоположный случай? Тут в дело вступает else (иначе):
score = 45
if score >= 60:
print("Тест сдан!")
else:
print("Нужно повторить материал")
Теперь программа реагирует на оба варианта: и на успех, и на неудачу. Это и есть полноценная конструкция if-else — одна из фундаментальных в программировании.
Важный момент: else не принимает условие. Он просто означает «во всех остальных случаях». Это не баг, а принцип — блок else выполняется тогда и только тогда, когда условие if оказалось ложным.
На наших занятиях ребята быстро замечают, что if-else — это как развилка на дороге: налево пойдёшь — одно, направо — другое. Третьего не дано.
А что если вариантов больше двух? Допустим, нужно выставить оценку по баллам:
score = 74
if score >= 90:
print("Отлично")
elif score >= 75:
print("Хорошо")
elif score >= 60:
print("Удовлетворительно")
else:
print("Неудовлетворительно")
Это важно понимать: порядок условий в цепочке имеет значение. Если поставить score >= 60 первым — все оценки от 60 и выше попадут в первый блок, и «Отлично» никогда не появится.
Пример:
age = 14
has_parent_permission = True
if age >= 12 and has_parent_permission:
print("Можно записаться на курс")
Или другой случай — проверяем, является ли число положительным или чётным:
n = 6
if n > 0 or n % 2 == 0:
print("Подходит")
Логические выражения — это отдельный навык, который стоит тренировать. На первый взгляд кажется, что всё просто, но вложенные условия с несколькими and/or начинают путать даже опытных программистов, если не расставлять скобки аккуратно.
Иногда одной развилкой не обойтись. Допустим, сначала нужно проверить, авторизован ли пользователь, а потом — какова его роль:
is_logged_in = True
is_admin = False
if is_logged_in:
if is_admin:
print("Добро пожаловать в панель администратора")
else:
print("Добро пожаловать в личный кабинет")
else:
print("Пожалуйста, войдите в систему")
Вложенные конструкции (nested statements) используются активно, но с ними нужно быть осторожным: чем глубже вложенность, тем сложнее читать код. Опытные разработчики стараются не уходить глубже двух уровней без необходимости.
Один из наших преподавателей в Стартории говорит так: «Если твой код уехал далеко вправо — время подумать, нельзя ли его переписать иначе».
Python позволяет записать простое условие в одну строку. Это называется тернарным выражением:
result = "Сдан" if score >= 60 else "Не сдан" print(result)
Это не отдельная конструкция — скорее, сокращённая запись для простых случаев. Использовать её удобно, когда блок кода умещается в одно выражение. Не нужно злоупотреблять: длинные тернарные выражения читаются хуже, чем обычный if-else.
На занятиях мы видим одни и те же ошибки — и не потому, что ребята невнимательны. Просто язык работает чуть иначе, чем интуитивно ожидается.
Забытое двоеточие:
if x > 0 # SyntaxError
print("Положительное")
Неправильный отступ:
if x > 0:
print("Положительное") # IndentationError
Сравнение вместо присваивания:
if x = 5: # SyntaxError — нужно ==, а не =
Путаница с elif и else: некоторые пишут else if вместо elif — в Python такой конструкции нет, это ошибка.
Несовпадение типов:
age = "15" if age >= 12: # TypeError — строку нельзя сравнивать с числом
Это особенно важно отслеживать: Python не приводит типы автоматически, как это делают некоторые другие языки.
Давайте соберём всё вместе и напишем небольшую программу — классификатор оценок с комментарием:
score = int(input("Введите балл: "))
if score < 0 or score > 100:
print("Ошибка: балл должен быть от 0 до 100")
elif score >= 90:
print("Отлично! Так держать.")
elif score >= 75:
print("Хорошо. Есть куда расти.")
elif score >= 60:
print("Удовлетворительно. Повторите слабые темы.")
else:
print("Неудовлетворительно. Нужно разобраться с основами.")
Здесь использованы: проверка на корректность ввода, логический оператор or, цепочка elif, финальный else. Это уже полноценная, рабочая инструкция — не учебный фрагмент, а настоящий код.
На курсе программирование на Python ребята начинают использовать условные операторы примерно на третьем занятии. Сначала — простые примеры: угадай число, классификатор возраста, проверка пароля. Потом — сложнее: условия в играх, фильтрация данных, логика чат-ботов.
Другой показательный пример: Маша, 15 лет, делала проект — бот для расчёта оценок. Она научилась вкладывать условия друг в друга и использовать elif-цепочки для обработки разных сценариев. Код получился чистым и читаемым — именно потому, что с самого начала разобралась в логике, а не просто копировала примеры.
Нет, else необязателен. Если вам нужно что-то сделать только при выполнении условия — else просто не пишется. Программа продолжит выполнение после блока if независимо от результата.
Технически — сколько угодно. На практике, если цепочка разрастается до 6–8 веток и больше, стоит подумать о словарях или других конструкциях. Длинные цепочки elif трудно поддерживать.
Да. Например, if x in [1, 2, 3]: проверяет, входит ли x в список. Это удобнее, чем писать if x == 1 or x == 2 or x == 3.
Нет. В Python многие значения имеют свою «истинность». Пустая строка, ноль, пустой список — считаются ложными (False). Непустая строка, ненулевое число — истинными (True). Это называется truthy/falsy значениями и иногда используется вместо явной проверки.
С простых примеров: проверка числа (положительное/отрицательное/ноль), классификатор оценок, «угадай число». Не нужно сразу лезть во вложенные условия. Сначала — основной оператор if и пара примеров с else. Дальше — elif и логические операторы. Это естественный порядок освоения.
Главное отличие — отступы вместо фигурных скобок. В Си или Java блок условия оборачивается в {}, и забыть двоеточие там невозможно, зато можно запутаться в скобках. В Python синтаксис чище, но требует дисциплины с отступами. Для начинающих это, как правило, проще.