Python: условия if-elif-else
Пять минут на эту статью — и «Python: условия if-elif-else» станет понятнее. Внутри: теория без воды, пример, разбор задания и чек-лист самопроверки.
Зачем нужны условия if, elif и else
Иногда программа должна не просто выполнять команды по порядку, а принимать решение: если число положительное — вывести одно сообщение, если отрицательное — другое, а если равно нулю — третье. Именно здесь школьники чаще всего путаются в отступах, двоеточиях и порядке проверки. В этом разборе ты пошагово поймёшь, как работают условия Python, научишься читать такой код и сможешь уверенно решать задачи на сравнение чисел, диапазоны и несколько вариантов ответа.
Условная конструкция проверяет логическое выражение. Его результатом может быть только два значения: True, то есть «истина», или False, то есть «ложь». Если выражение истинно, Python выполняет блок команд после if. Если ложно, программа переходит к следующей подходящей ветке.
Базовая форма выглядит так:
if условие:
команда
ещё_команда
После условия обязательно ставится двоеточие, а команды внутри блока записываются с одинаковым отступом, обычно в четыре пробела. Отступ здесь не украшение, а часть синтаксиса Python.
Если хочешь сразу проверить понимание на коротких упражнениях, можно открыть бесплатную практику в личном кабинете и решить несколько задач в удобном порядке.
Как записывать сравнения и логические условия
Для сравнения Python использует специальные операторы: равно — ==, не равно — !=, больше — >, меньше — <, больше или равно — >=, меньше или равно — <=. Важно отличать == от одиночного знака =. Первый сравнивает значения, а второй записывает значение в переменную.
Например:
\( age = 14 \)
\( if age >= 14: \)
print("Доступ разрешён")
Условие может проверять не только одно сравнение. Оператор and требует, чтобы истинными были оба выражения, or — хотя бы одно, а not меняет результат на противоположный.
\( score = 76 \)
\( if score >= 60 and score <= 100: \)
print("Результат принят")
В задачах с диапазонами полезно помнить: запись x > 0 and x < 10 означает, что x находится строго между 0 и 10. Python позволяет записать короче: 0 < x < 10.
Перед написанием if проговори условие словами: «если возраст не меньше четырнадцати». Такая проверка помогает выбрать правильный знак и не перепутать границу диапазона.
Ветвь elif и запасной вариант else
Одного if достаточно, когда вариантов всего два: условие выполнилось или нет. Для двух ветвей используется else:
\( temperature = 5 \)
if temperature > 0:
print("Плюс")
else:
print("Ноль или минус")
Если вариантов больше, добавляются ветви elif. Это сокращение от «иначе, если». Python проверяет их сверху вниз и выполняет только первую ветвь с истинным условием. После этого остальные условия уже не рассматриваются.
\( mark = 4 \)
\( if mark == 5: \)
print("Отлично")
\( elif mark == 4: \)
print("Хорошо")
\( elif mark == 3: \)
print("Удовлетворительно")
else:
print("Нужно повторить тему")
Порядок проверок имеет значение. Если сначала поставить широкое условие, например mark >= 3, до более конкретных вариантов программа может не дойти. Сначала размещай точные случаи, затем общие.
Для дополнительной тренировки можно использовать личный кабинет с бесплатными заданиями: после каждой попытки полезно объяснить себе, почему сработала именно эта ветвь.
Разобранный пример: определяем четверть года
Пусть дана переменная month — номер месяца от 1 до 12. Нужно вывести номер квартала: месяцы 1–3 относятся к первому кварталу, 4–6 — ко второму, 7–9 — к третьему, 10–12 — к четвёртому. Сначала определим границы, затем запишем их сверху вниз.
\( month = 8 \)
\( if 1 <= month <= 3: \)
print("1-й квартал")
\( elif 4 <= month <= 6: \)
print("2-й квартал")
\( elif 7 <= month <= 9: \)
print("3-й квартал")
\( elif 10 <= month <= 12: \)
print("4-й квартал")
else:
print("Некорректный номер месяца")
Разберём выполнение. В переменной month хранится 8. Первое условие 1 ≤ 8 ≤ 3 ложно, поэтому Python переходит к elif. Второе условие также ложно. Третье условие 7 ≤ 8 ≤ 9 истинно, поэтому выводится «3-й квартал». До последнего else программа не доходит.
Последняя ветвь нужна для защиты от неверного ввода: например, 0 или 15 не являются номерами месяцев. Даже если в условии задачи обещано корректное значение, такая проверка делает программу понятнее и надёжнее.
Типичные ошибки и как их находить
Первая ошибка — забытое двоеточие после if, elif или else. Вторая — неправильный отступ. Все команды одной ветви должны начинаться на одном уровне, а команда после ветви должна быть сдвинута вправо. Нельзя смешивать случайные отступы и ожидать, что Python угадает структуру.
Третья ошибка — использование = вместо ==:
\( if number == 10: \)
print("Число равно 10")
Четвёртая — неверная граница. Если требуется «не меньше 60», нужен оператор >=, а не >. Если требуется «меньше 60», знак равенства добавлять нельзя.
Пятая — лишняя проверка после уже найденного случая. В цепочке elif не нужно повторять условие, которое исключено предыдущими ветвями. Полезно составлять таблицу решений:
| Условие | Результат |
|---|---|
| x < 0 | отрицательное |
| x == 0 | ноль |
| x > 0 | положительное |
Не ставь несколько независимых if, если должен выполниться только один вариант. Для взаимоисключающих случаев используй if, elif и else, иначе программа может вывести несколько ответов.
Что запомнить
Конструкция if проверяет первое условие, elif добавляет следующие варианты, а else срабатывает, когда ни одно условие не выполнилось. После каждой управляющей строки ставится двоеточие, а тело ветви оформляется отступом. Операторы ==, !=, >, <, >= и <= отвечают за сравнение, while и for к этой конструкции не относятся.
Алгоритм решения простой: выпиши все возможные случаи, расставь границы, проверь знаки сравнения и только потом перенеси решение в код. Отдельно протестируй граничные значения: 0, минимальное, максимальное и число прямо около границы.
Следующий шаг — зарегистрируйся и реши 5 заданий бесплатно в личном кабинете. После каждого ответа объясни, какая ветвь должна сработать и почему. Такой короткий разбор закрепляет тему лучше механического переписывания примеров.
Чем if отличается от elif?
if начинает проверку. elif проверяет дополнительное условие только тогда, когда предыдущие условия оказались ложными. В одной цепочке выполняется максимум одна подходящая ветвь.
Обязательно ли писать else?
Нет. Если действие нужно только при выполнении условия, достаточно if. else добавляют, когда нужен отдельный результат для всех остальных случаев.
Как закрепить тему после разбора?
Реши несколько задач на знаки сравнения, диапазоны и несколько ветвей. Обязательно проверь граничные значения и устно объясни порядок выполнения программы.
Почему программа выдаёт ошибку отступов?
Скорее всего, команды одного блока имеют разные отступы или тело ветви не сдвинуто вправо. Используй одинаковое количество пробелов во всех строках одного уровня.
Не оставляйте тему «прочитанной»
Понимание — половина дела. Вторая — практика с обратной связью: личный кабинет Просто Урок покажет, где вы ошибаетесь, и подтянет слабые места.