Условная конструкция. Оператор if

В этой статье мы познакомимся с условными конструкциями в Python — одним из самых важных инструментов в программировании. Без них наши программы были бы как поезд, который может ехать только по прямой, без возможности выбрать путь на развилке.

Условные конструкции позволяют программе "принимать решения" и выбирать разные действия в зависимости от обстоятельств.

Что такое условная конструкция?

Условная конструкция — это инструмент, позволяющий выполнять различные блоки кода в зависимости от того, истинно ли (True) или ложно (False) определённое условие.

В Python основной условной конструкцией является оператор if. Он проверяет, истинно ли условие, и если да — выполняет соответствующий блок кода.

Основные конструкции условного оператора

Синтаксис оператора if

Базовый синтаксис условной конструкции if в Python выглядит так:

Python 3.13
# Простой пример оператора if
>>> age = 18

>>> if age >= 18:
...     print("Вы совершеннолетний!")

>>> print("Эта строка выполнится всегда, независимо от условия.")
Вы совершеннолетний!
Эта строка выполнится всегда, независимо от условия.

Обратите внимание на несколько важных деталей:

  1. После условия ставится двоеточие :
  2. Блок кода, который должен выполниться при истинном условии, обязательно имеет отступ (обычно 4 пробела или один табулятор)
  3. Как только отступ заканчивается, это означает конец блока if

Давайте изменим значение возраста и посмотрим на результат:

Python 3.13
>>> age = 16

>>> if age >= 18:
...     print("Вы совершеннолетний!")

>>> print("Эта строка выполнится всегда, независимо от условия.")
Эта строка выполнится всегда, независимо от условия.

В этом случае условие age >= 18 не истинно (ложно), поэтому блок кода внутри if не выполняется, и мы видим только вторую строку.

Использование else — "иначе"

Часто нам нужно выполнить один блок кода, если условие истинно, и другой — если условие ложно. Для этого используется конструкция if-else:

Python 3.13
>>> temperature = 15

>>> if temperature > 20:
...     print("Сегодня тепло, можно идти в футболке!")
... else:
...     print("Сегодня прохладно, возьмите куртку!")
Сегодня прохладно, возьмите куртку!

Здесь если температура выше 20, выполнится первый блок. В противном случае выполняется блок после else. В нашем примере температура 15, что меньше 20, поэтому выполняется код в блоке else.

Конструкция elif — "иначе, если"

Что если у нас больше двух вариантов выбора? Например, мы хотим разные сообщения для разных диапазонов температур. Для этого используется конструкция elif (сокращение от "else if"):

Python 3.13
>>> temperature = 25

>>> if temperature < 0:
...     print("Очень холодно! Наденьте тёплую куртку и шапку!")
... elif temperature < 10:
...     print("Холодно. Оденьтесь теплее.")
... elif temperature < 20:
...     print("Прохладно. Лёгкая куртка не помешает.")
... elif temperature < 30:
...     print("Тепло. Футболка и шорты подойдут.")
... else:
...     print("Жарко! Возьмите с собой воду!")
Тепло. Футболка и шорты подойдут.

В этом примере Python проверяет каждое условие по порядку. Как только находится первое истинное условие, выполняется соответствующий блок кода, а все последующие условия пропускаются. Если ни одно из условий не истинно, выполняется блок else (при его наличии).

Важно: Python проверяет условия сверху вниз и останавливается, как только находит первое истинное условие. Порядок условий имеет значение!

Расширенные возможности условных конструкций

Вложенные условия

Условные конструкции можно вкладывать друг в друга, создавая более сложную логику:

Python 3.13
>>> age = 25
>>> has_license = True

>>> if age >= 18:
...     print("Вы совершеннолетний.")

>>>     if has_license:
...         print("Вы можете водить автомобиль.")
...     else:
...         print("Для вождения автомобиля вам необходимо получить права.")
... else:
...     print("Вы несовершеннолетний и не можете водить автомобиль.")
Вы совершеннолетний.
Вы можете водить автомобиль.

Однако не увлекайтесь вложенными условиями — код с большим количеством уровней вложенности становится трудночитаемым. Часто такую логику можно переписать с использованием логических операторов.

Логические операторы в условиях

Для создания сложных условий используются логические операторы:

  • and — логическое И (условие истинно, если истинны оба выражения)
  • or — логическое ИЛИ (условие истинно, если истинно хотя бы одно выражение)
  • not — логическое НЕ (инвертирует значение выражения)

Давайте перепишем наш пример с вложенным условием:

Python 3.13
>>> age = 25
>>> has_license = True

>>> if age >= 18 and has_license:
...     print("Вы совершеннолетний и можете водить автомобиль.")
... elif age >= 18 and not has_license:
...     print("Вы совершеннолетний, но для вождения автомобиля вам необходимо получить права.")
... else:
...     print("Вы несовершеннолетний и не можете водить автомобиль.")
Вы совершеннолетний и можете водить автомобиль.

Такой код более читаемый и его проще поддерживать.

Рассмотрим еще пример с оператором or:

Python 3.13
>>> day = "суббота"

>>> if day == "суббота" or day == "воскресенье":
...     print("Выходной день! Можно отдохнуть. 😎")
... else:
...     print("Рабочий день. Нужно идти на работу. 💼")
Выходной день! Можно отдохнуть. 😎

Тернарный оператор

Для простых условий можно использовать тернарный оператор — компактную форму записи условия:

Python 3.13
>>> age = 20

# Обычная запись через if-else
>>> if age >= 18:
...     status = "совершеннолетний"
... else:
...     status = "несовершеннолетний"

>>> print(f"Обычная запись: Вы {status}")
Обычная запись: Вы совершеннолетний
# Та же логика, но с использованием тернарного оператора >>> status = "совершеннолетний" if age >= 18 else "несовершеннолетний" >>> print(f"Тернарный оператор: Вы {status}")
Тернарный оператор: Вы совершеннолетний

Синтаксис тернарного оператора:

Python 3.13
значение_если_истина if условие else значение_если_ложь

Тернарный оператор делает код более компактным, но не злоупотребляйте им — сложные условия лучше записывать в обычном формате для читаемости.

Практические примеры использования условий

Условные конструкции широко применяются в повседневном программировании. Рассмотрим несколько практических примеров:

Проверка четности числа

Одно из простых и часто используемых применений условий — определение четности числа:

Python 3.13
>>> number = 42

>>> if number % 2 == 0:
...     print(f"{number} — четное число")
... else:
...     print(f"{number} — нечетное число")
42 — четное число

Проверка пароля

Условия помогают реализовать проверку данных на соответствие определенным критериям:

Python 3.13
>>> password = "password123"

>>> if len(password) < 8:
...     print("Пароль слишком короткий!")
... elif password.isalpha():
...     print("Пароль должен содержать не только буквы!")
... elif password.isdigit():
...     print("Пароль должен содержать не только цифры!")
... else:
...     print("Пароль подходит!")
Пароль подходит!

Проверка понимания

Давайте проверим, насколько хорошо вы усвоили тему условных конструкций:

Что выведет следующий код?

Python 3.13
x = 5
if x > 10:
    print("A")
elif x > 5:
    print("B")
elif x == 5:
    print("C")
else:
    print("D")

Мы с вами на связи
Русский