Умовні оператори в 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-тижнева програма про магію даних.
Favbet Tech – це ІТ-компанія зі 100% украінською ДНК, що створює досконалі сервіси для iGaming і Betting з використанням передових технологіи та надає доступ до них. Favbet Tech розробляє інноваційне програмне забезпечення через складну багатокомпонентну платформу, яка здатна витримувати величезні навантаження та створювати унікальний досвід для гравців.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: