Сьогодні ми поговоримо про конструкцію перевірки умови if
. Це одна з базових конструкцій у програмуванні — і не тільки в Python.
За допомогою конструкції if
можна вказати критерії виконання коду, що дозволяє програмі приймати рішення на основі отриманих даних та визначати якою гілкою алгоритму їй рухатися далі.
У цьому матеріалі розглянемо синтаксис, блок-схеми та приклади трьох видів конструкції if
, які є в Python:
if
;if...else
; if...elif...else
.
if
— базовий умовний оператор в Python, при використанні якого вказується лише критерій виконання дії і власне сама дія.
У мові програмування Python синтаксис конструкції if
виглядає так:
if деякий_блок_коду: блок_коду
Деякий_блок_коду
— це логічний вираз, який має повернути значення True
або False
. Якщо він поверне True
, то виконається блок коду, який знаходиться після двокрапки і відокремлений від рядка if
відступом.
Блок-схема конструкції if
виглядає так:
Приклад використання конструкції if
в Python:
x = 17 if x > 0: print("x is positive")
У цьому прикладі, якщо значення змінної x
більше нуля, буде виведено рядок x is positive
.
Конструкція if...else
трохи складніша, ніж if
— вона дозволяє виконати один блок коду, якщо умова істинна, та інший блок коду, якщо умова помилкова.
Синтаксис конструкції if...else
в Python виглядає так:
if выраз: блок коду 1 else: блок коду 2
Синтаксис схожий на if
, але додається else
і двокрапка, щоб сказати, що робити програмі, якщо перевірка на першу умову не поверне значення True
.
Блок-схема конструкції 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
:
elif
. Так триває доти, доки знайдеться справжнє умова.else
.Синтаксис конструкції if...elif...else
в Python виглядає так:
if вираз: блок коду 1 elif вираз2: блок коду 2 elif вираз3: блок коду 3 else: блок коду 4
Блок-схема конструкції if...elif...else
виглядає так:
Приклад нижче показує, як конструкція 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%;Потім обчислюється остаточна ціна товару з використанням формули 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-тижнева програма про магію даних.
Резиденти Дія.City сплатили до бюджету понад 8 млрд грн податків в І кварталі 2025 року.…
У Китаї закликають офісних працівників не працювати надто багато — держава сподівається, що вільний час…
Експерти звертають увагу на тривожну тенденцію: люди все частіше використовують ChatGPT, щоб визначити місцезнаходження, зображене…
Компанія JetBrains випустила нову версію мультимовного середовища розробки IntelliJ IDEA 2025.1. Оновлена IDE отримала численні…
Платформа обміну миттєвими повідомленнями Discord впроваджує функцію перевірки віку за допомогою сканування обличчя. Зараз вона…
Wikipedia намагається захистити себе від тисяч різноманітних ботів-скрейперів, які сканують дані цієї платформи для навчання…