Умовні конструкції
Керування потоком виконання: як програма “обирає шлях” залежно від умов.
1 Логічний фундамент
Перш ніж програма зможе прийняти рішення, вона повинна отримати відповідь на питання:
"Чи є це твердження істинним?". В основі кожної умови лежить логічний тип даних bool,
який має лише два значення: True (Істина) або False (Хиба).
Для створення таких питань ми використовуємо оператори порівняння:
- == (Рівність)
- != (Нерівність)
- > (Більше)
- <= (Менше або =)
Термінологія
Булева логіка — це розділ математики, на якому базується робота процесора. Навіть найскладніший штучний інтелект у своїй основі приймає мільярди мікро-рішень "так" або "ні".
2 Інструкція if: структура коду
Python відрізняється від інших мов програмування своєю суворістю до відступів (indentation). Умовний блок коду визначається не дужками, а пробілами.
# Базова структура
if condition:
# Блок коду з відступом 4 пробіли
action_1()
action_2()
# Цей код поза умовою
action_3()
Типова помилка
"IndentationError: expected an indented block".
Виникає, якщо ви забули зробити відступ після двокрапки або використали різну кількість пробілів у межах одного блоку.
3 Анатомія вибору: else та elif
У реальному світі ми рідко маємо лише один варіант. Конструкція if-elif-else дозволяє створити каскад перевірок.
Блок else
Це "запобіжний механізм". Він спрацьовує тоді, коли жодна з попередніх умов не виявилася істинною.
Блок else не має власної умови.
Блок elif
Дозволяє додати проміжну перевірку. Ви можете використовувати необмежену кількість elif у одному ланцюжку.
# Приклад каскадної перевірки
speed = 110
if speed > 120:
print("Штраф: 1700 грн")
elif speed > 80:
print("Попередження!")
else:
print("Швидкість у нормі")
Примітка: Python зупиниться на першій істинній умові. Навіть якщо speed=150, спрацює лише перший блок.
4 Сучасний Python: оператор match
У версії Python 3.10 з'явився інструмент Structural Pattern Matching.
Це альтернатива довгим спискам if-elif, коли ми порівнюємо значення однієї змінної з багатьма константами.
# Вибір мови інтерфейсу
lang = "UA"
match lang:
case "UA":
print("Привіт!")
case "EN":
print("Hello!")
case "FR":
print("Bonjour!")
case _:
print("Language not supported")
Синтаксичний “цукор”
Символ підкреслення _ у блоці case виконує роль "інакше" (як блок else).
Це стандарт професійної розробки для обробки непередбачених значень.
Висновок
Навички роботи з умовними операторами дозволяють створювати гнучкі та адаптивні програми. Пам'ятайте про логіку каскаду: порядок умов має значення — від більш специфічних до більш загальних.