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

Умовні оператори в 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
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-тижнева програма про магію даних.

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

Більше 8 млрд грн податків. Стільки сплатили резиденти Дія.City в І кварталі 2025 року

Резиденти Дія.City сплатили до бюджету понад 8 млрд грн податків в І кварталі 2025 року.…

18.04.2025

Китайських офісних працівників закликають менше працювати. Це має допомогти місцевій економіці

У Китаї закликають офісних працівників не працювати надто багато — держава сподівається, що вільний час…

18.04.2025

ChatGPT значно покращив пошук місць по фото. Це посилює проблеми конфіденційності

Експерти звертають увагу на тривожну тенденцію: люди все частіше використовують ChatGPT, щоб визначити місцезнаходження, зображене…

18.04.2025

Середовище розробки IntelliJ IDEA оновлено до версії 2025.1

Компанія JetBrains випустила нову версію мультимовного середовища розробки IntelliJ IDEA 2025.1. Оновлена IDE отримала численні…

18.04.2025

Discord впроваджує функцію сканування обличчя для перевірки віку користувачів

Платформа обміну миттєвими повідомленнями Discord впроваджує функцію перевірки віку за допомогою сканування обличчя. Зараз вона…

18.04.2025

Wikipedia випустила спеціальний датасет, щоб відволікти увагу ботів

Wikipedia намагається захистити себе від тисяч різноманітних ботів-скрейперів, які сканують дані цієї платформи для навчання…

18.04.2025