Условная конструкция. Оператор if
В этой статье мы познакомимся с условными конструкциями в Python — одним из самых важных инструментов в программировании. Без них наши программы были бы как поезд, который может ехать только по прямой, без возможности выбрать путь на развилке.
Условные конструкции позволяют программе "принимать решения" и выбирать разные действия в зависимости от обстоятельств.
Что такое условная конструкция?
Условная конструкция — это инструмент, позволяющий выполнять различные блоки кода в зависимости от того, истинно ли (True) или ложно (False) определённое условие.
В Python основной условной конструкцией является оператор if. Он проверяет, истинно ли условие, и если да — выполняет соответствующий блок кода.
Основные конструкции условного оператора
Синтаксис оператора if
Базовый синтаксис условной конструкции if в Python выглядит так:
# Простой пример оператора if >>> age = 18 >>> if age >= 18: ... print("Вы совершеннолетний!") >>> print("Эта строка выполнится всегда, независимо от условия.")
Вы совершеннолетний!Эта строка выполнится всегда, независимо от условия.
Обратите внимание на несколько важных деталей:
- После условия ставится двоеточие :
- Блок кода, который должен выполниться при истинном условии, обязательно имеет отступ (обычно 4 пробела или один табулятор)
- Как только отступ заканчивается, это означает конец блока if
Давайте изменим значение возраста и посмотрим на результат:
>>> age = 16 >>> if age >= 18: ... print("Вы совершеннолетний!") >>> print("Эта строка выполнится всегда, независимо от условия.")
Эта строка выполнится всегда, независимо от условия.
В этом случае условие age >= 18 не истинно (ложно), поэтому блок кода внутри if не выполняется, и мы видим только вторую строку.
Использование else — "иначе"
Часто нам нужно выполнить один блок кода, если условие истинно, и другой — если условие ложно. Для этого используется конструкция if-else:
>>> temperature = 15 >>> if temperature > 20: ... print("Сегодня тепло, можно идти в футболке!") ... else: ... print("Сегодня прохладно, возьмите куртку!")
Сегодня прохладно, возьмите куртку!
Здесь если температура выше 20, выполнится первый блок. В противном случае выполняется блок после else. В нашем примере температура 15, что меньше 20, поэтому выполняется код в блоке else.
Конструкция elif — "иначе, если"
Что если у нас больше двух вариантов выбора? Например, мы хотим разные сообщения для разных диапазонов температур. Для этого используется конструкция elif (сокращение от "else if"):
>>> temperature = 25 >>> if temperature < 0: ... print("Очень холодно! Наденьте тёплую куртку и шапку!") ... elif temperature < 10: ... print("Холодно. Оденьтесь теплее.") ... elif temperature < 20: ... print("Прохладно. Лёгкая куртка не помешает.") ... elif temperature < 30: ... print("Тепло. Футболка и шорты подойдут.") ... else: ... print("Жарко! Возьмите с собой воду!")
Тепло. Футболка и шорты подойдут.
В этом примере Python проверяет каждое условие по порядку. Как только находится первое истинное условие, выполняется соответствующий блок кода, а все последующие условия пропускаются. Если ни одно из условий не истинно, выполняется блок else (при его наличии).
Важно: Python проверяет условия сверху вниз и останавливается, как только находит первое истинное условие. Порядок условий имеет значение!
Расширенные возможности условных конструкций
Вложенные условия
Условные конструкции можно вкладывать друг в друга, создавая более сложную логику:
>>> age = 25 >>> has_license = True >>> if age >= 18: ... print("Вы совершеннолетний.") >>> if has_license: ... print("Вы можете водить автомобиль.") ... else: ... print("Для вождения автомобиля вам необходимо получить права.") ... else: ... print("Вы несовершеннолетний и не можете водить автомобиль.")
Вы совершеннолетний.Вы можете водить автомобиль.
Однако не увлекайтесь вложенными условиями — код с большим количеством уровней вложенности становится трудночитаемым. Часто такую логику можно переписать с использованием логических операторов.
Логические операторы в условиях
Для создания сложных условий используются логические операторы:
- and — логическое И (условие истинно, если истинны оба выражения)
- or — логическое ИЛИ (условие истинно, если истинно хотя бы одно выражение)
- not — логическое НЕ (инвертирует значение выражения)
Давайте перепишем наш пример с вложенным условием:
>>> age = 25 >>> has_license = True >>> if age >= 18 and has_license: ... print("Вы совершеннолетний и можете водить автомобиль.") ... elif age >= 18 and not has_license: ... print("Вы совершеннолетний, но для вождения автомобиля вам необходимо получить права.") ... else: ... print("Вы несовершеннолетний и не можете водить автомобиль.")
Вы совершеннолетний и можете водить автомобиль.
Такой код более читаемый и его проще поддерживать.
Рассмотрим еще пример с оператором or:
>>> day = "суббота" >>> if day == "суббота" or day == "воскресенье": ... print("Выходной день! Можно отдохнуть. 😎") ... else: ... print("Рабочий день. Нужно идти на работу. 💼")
Выходной день! Можно отдохнуть. 😎
Тернарный оператор
Для простых условий можно использовать тернарный оператор — компактную форму записи условия:
>>> age = 20 # Обычная запись через if-else >>> if age >= 18: ... status = "совершеннолетний" ... else: ... status = "несовершеннолетний" >>> print(f"Обычная запись: Вы {status}")
Обычная запись: Вы совершеннолетний# Та же логика, но с использованием тернарного оператора >>> status = "совершеннолетний" if age >= 18 else "несовершеннолетний" >>> print(f"Тернарный оператор: Вы {status}")Тернарный оператор: Вы совершеннолетний
Синтаксис тернарного оператора:
значение_если_истина if условие else значение_если_ложь
Тернарный оператор делает код более компактным, но не злоупотребляйте им — сложные условия лучше записывать в обычном формате для читаемости.
Практические примеры использования условий
Условные конструкции широко применяются в повседневном программировании. Рассмотрим несколько практических примеров:
Проверка четности числа
Одно из простых и часто используемых применений условий — определение четности числа:
>>> number = 42 >>> if number % 2 == 0: ... print(f"{number} — четное число") ... else: ... print(f"{number} — нечетное число")
42 — четное число
Проверка пароля
Условия помогают реализовать проверку данных на соответствие определенным критериям:
>>> password = "password123" >>> if len(password) < 8: ... print("Пароль слишком короткий!") ... elif password.isalpha(): ... print("Пароль должен содержать не только буквы!") ... elif password.isdigit(): ... print("Пароль должен содержать не только цифры!") ... else: ... print("Пароль подходит!")
Пароль подходит!
Проверка понимания
Давайте проверим, насколько хорошо вы усвоили тему условных конструкций:
Что выведет следующий код?
x = 5 if x > 10: print("A") elif x > 5: print("B") elif x == 5: print("C") else: print("D")