ЯдроКодаподготовка к экзаменам
Учебная платформа

Загружаем материалы

Подготавливаем материалы и навигацию по разделу.

if else в Python: выбор из двух вариантов

Автор: · Обновлено

Связка if–else описывает два взаимоисключающих пути. Сначала вычисляется условие после if. При True выполняется первый блок, при False — блок else. За один проход срабатывает ровно одна из двух веток, после чего управление сходится на общей строке.

Чётное или нечётное

number = 17

if number % 2 == 0:
    label = 'чётное'
else:
    label = 'нечётное'

print(number, '—', label)

Результат:

17 — нечётное

Остаток от деления на 2 равен нулю только для чётных целых чисел. Обе ветки присваивают label, поэтому после конструкции имя гарантированно существует. Такой подход удобнее двух независимых if: условия не вычисляются повторно, а взаимоисключение видно из структуры.

Что означает else

После else нельзя написать дополнительное условие: слово означает «во всех остальных случаях». Двоеточие и отступ обязательны. Ошибка возникает, если поставить обычную строку между завершением блока if и else — эти части должны идти подряд на одном уровне.

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

Проверка двух исходов

Прочитайте пароль. При точном совпадении со строкой python2026 выведите «доступ открыт», иначе — «доступ закрыт». После ветвления напечатайте «попытка завершена». Проверьте правильную строку, неправильную строку и вариант с заглавной буквой. Затем измените задачу: по введённому числу выведите «положительное» или «не положительное». Объясните, почему ноль попал во вторую ветку и чем формулировка отличалась бы от проверки «отрицательное».

Симметрия двух исходов

Реализуйте проверку доступности места: если свободных мест больше нуля, сформировать сообщение о бронировании, иначе сообщить об отсутствии. В обеих ветках присвойте переменную message и напечатайте её после конструкции. Проверьте 1 и 0, затем отрицательное значение как признак ошибочных данных. Не превращайте его автоматически в обычный else-случай: добавьте предварительную проверку или уточните контракт. После этого перепишите решение двумя независимыми if и покажите на бумаге, при каких условиях подход перестаёт гарантировать один исход. Структура кода должна отражать взаимоисключение вариантов.

Практикум: чётность с двумя исходами

Определите чётность введённого целого и выведите одно из двух сообщений. Проверьте 0, положительное и отрицательное нечётное число. До запуска вычислите остаток каждого значения при делении на 2. Убедитесь, что ровно одна ветка выполняется и общий завершающий текст расположен после конструкции. Затем измените задачу: число считается допустимым, если оно положительное и чётное; это уже отдельное условие, а не третья ветка прежней классификации.

Контрольная точка

Почему две независимые конструкции if не всегда эквивалентны if/else? Приведите правила, которые могут быть одновременно истинными, и объясните, сколько сообщений появится.

Частые вопросы

Ноль является чётным?

Да, потому что делится на 2 без остатка: 0 % 2 == 0. Знак числа также не меняет определение чётности; важен остаток при делении.

Источники