Рубріки: Теория

Условные операторы в Python: примеры и как использовать

Сергій Бондаренко

Сегодня мы поговорим о конструкции проверки условия if. Это одна из базовых конструкций в программировании — и не только в Python.

С помощью конструкции if можно указать критерии выполнения кода, что позволяет программе принимать решения на основе полученных данных и определять по какой ветке алгоритма ей двигаться дальше.

В этом материале рассматрим синтаксис, блок-схемы и примеры трех видов конструкции if, которые есть в Python:

  • if;
  • if...else;
  • if...elif...else.

Конструкция if

if — самый базовый условный оператор в Python, при использовании которого указывается только критерий выполнения действия и собственно само действие.

Синтаксис конструкции if

В языке программирования Python синтаксис конструкции if выглядит так:

if некий_блок_кода:

    блок_кода

Некий_блок_кода — это логическое выражение, которое должно вернуть значение True или False. Если оно вернет True, то выполнится блок кода, который находится после двоеточия и отделен от строки if отступом.

Блок-схема конструкции if

Блок-схема конструкции if выглядит так:

Пример конструкции if

Пример использования конструкции if в Python:

x = 17
if x > 0:
    print("x is positive")

В этом примере, если значение переменной x больше нуля, то будет выведена строка x is positive.

Конструкция if…else

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

Синтаксис конструкции if…else

Синтаксис конструкции if...else в Python выглядит так:

if выражение:
    блок кода 1
else:
    блок кода 2

Синтаксис похож на if, но добавляется else и двоеточие, чтобы сказать, что делать программе, если проверка на первое условие не вернет значение True.

Блок-схема конструкции if…else

Блок-схема конструкции if...else выглядит так:

Пример конструкции if…else

Пример использования конструкции if...else в Python:

event_type = "HighloadToday"

if event_type == "HighloadToday":
    print("Welcome to HighloadToday conference!")
    print("Don't forget to visit our booth!")
else:
    print("Welcome to our event!")

В этом примере мы инициализируем, а потом проверяем значение переменной event_type:

  • если оно равно "HighloadToday", программа выводит сообщение о приветствии на конференции HighloadToday и напоминает посетить наш стенд;
  • если значение переменной не равно "HighloadToday", программа выводит сообщение о приветствии на другом мероприятии.

Конструкция if…elif…else

Конструкция if...elif...else — самая сложная. Она позволяет выбрать один из нескольких блоков кода для выполнения, в зависимости от того, какое из заданных условий является истинным.

Как работает if...elif...else:

  • Если первое условие истинно, то выполняется соответствующий блок кода, а код после этого условия не выполняется.
  • Если первое условие ложно, то проверяется следующее условие в конструкции elif. Так продолжается до тех пор, пока не найдется истинное условие.
  • Если все условия ложны, то выполняется блок кода, определенный в конструкции else.

Синтаксис конструкции if…elif…else

Синтаксис конструкции if...elif...else в Python выглядит так:

if выражение1:
    блок кода 1
elif выражение2:
    блок кода 2
elif выражение3:
    блок кода 3
else:
    блок кода 4

Блок-схема конструкции if…elif…else

Блок-схема конструкции if...elif...else выглядит так:

Пример использования конструкции if…elif…else в Python

Пример ниже показывает, как конструкция if...elif...else может быть использована для выполнения разных действий в зависимости от значения переменной, а также настройки параметров вычислений в соответствии с каждым условием:

product_type = "clothing"
product_price = 50

if product_type == "electronics":
    discount = 0.1
elif product_type == "clothing":
    discount = 0.2
elif product_type == "books":
    discount = 0.3
else:
    discount = 0.05

final_price = product_price - (product_price * discount)
print("The final price of the product is:", final_price)

Здесь конструкция if...elif...else применяется для проверки значения переменной product_type и определения соответствующей скидки:

  • если product_type равно "electronics", устанавливается скидка в 10%;
  • если product_type равно "clothing",  скидка принимает значение в 20%;
  • если product_type равно "books", выбирается скидка в 30%;
  • если значение переменной не соответствует ни одному из указанных значений, скидка выставляется в 5%.

Затем вычисляется окончательная цена товара с использованием формулы final_price = product_price - (product_price * discount). При этом значение переменной зависит от условий выше.

Наконец, на экран выводится сообщение с окончательной ценой товара.

Хочешь глубже изучать Python, еще и под присмотром опытных менторов? Приходи на курсы Python от Hillel. Доступны два варианта: Basic-курс и Pro, для тех, кто хочет усовершенствовать знания.

Вложенные конструкции

Конструкции if можно вкладывать друг в друга, чтобы описать более сложные условия.

Рассмотрим вложенную конструкцию на примере обработки компанией заявок. Предположим, компания имеет разные уровни обслуживания для своих клиентов. При получении заявки она должна определить, какой уровень обслуживания применять для обработки этой заявки:

if customer_type == "platinum":
    if request_type == "technical":
        handle_platinum_technical_request()
    elif request_type == "billing":
        handle_platinum_billing_request()
    else:
        handle_platinum_general_request()
elif customer_type == "gold":
    if request_type == "technical":
        handle_gold_technical_request()
    elif request_type == "billing":
        handle_gold_billing_request()
    else:
        handle_gold_general_request()
else:
    handle_regular_request()

В этом примере в отдельные проверки конструкции if...elif...else вложены дополнительные проверки такого же типа. То есть сначала программа проверяет тип клиента (Platinum или Gold), а потом уже — тип заявки:

  • если это техническая заявка, то она обрабатывается функцией handle_platinum_technical_request();
  • если это заявка на оплату, то она обрабатывается функцией handle_platinum_billing_request();
  • если это общая заявка, то она обрабатывается функцией handle_platinum_general_request().

Обратите внимание! Для клиентов с типом Gold, программа обрабатывает заявки аналогичным образом, но использует другие функции. А если бы эти блоки были одинаковыми, их можно было бы вынести в отдельную функцию.

Ремарка про отступы

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

Наличие правильных отступов помогает интерпретатору Python определить границы блоков кода, которые должны быть выполнены в теле условной конструкции.

В Python для создания отступов используется пробел или символ табуляции. Обычно для каждого нового блока кода внутри условной конструкции используется отступ в четыре пробела. Неправильное использование отступов может привести к ошибкам синтаксиса и выполнению неправильного кода:

# Неправильно отформатированный код

x = 5
if x > 0:
print("x is positive")  # Неправильно отступленный блок кода
else:
print("x is negative")

В этом примере блок кода, который должен выполниться, если условие x > 0 истинно, не правильно отступлен. В результате, при запуске этого кода, возникнет ошибка синтаксиса:

IndentationError: expected an indented block

Эта ошибка возникает потому, что Python ожидает, что следующий блок кода будет правильно отступлен после условной конструкции.

Ошибки будут возникать даже если вы забыли про отступ только в одной строке:

# Неправильно отформатированный код

x = 5
if x > 0:
    print("x is positive")
else:
print("x is negative")  # Неправильно отступленный блок кода

В этом примере не правильно отформатирована часть кода, которая должна выполниться, если условие x > 0 ложно. В результате, при запуске этого кода, программа выведет сообщение “x is negative”, даже если значение переменной x положительное.

Заключение

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

Если нужно описать более сложные условия, можно использовать конструкции if...else и if...elif...else. Для самых сложных алгоритмов используйте вложенные конструкции if.

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

А если вы уже знаете базу Python и теперь хотите овладеть востребованной профессией с этим скиллом, регистрируйтесь на курс Data Scientist от robot_dreams. Это комплексная 12-недельная программа о магии данных.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023