Умовні конструкції

Керування потоком виконання: як програма “обирає шлях” залежно від умов.

1 Логічний фундамент

Перш ніж програма зможе прийняти рішення, вона повинна отримати відповідь на питання: "Чи є це твердження істинним?". В основі кожної умови лежить логічний тип даних bool, який має лише два значення: True (Істина) або False (Хиба).

Для створення таких питань ми використовуємо оператори порівняння:

  • == (Рівність)
  • != (Нерівність)
  • > (Більше)
  • <= (Менше або =)

Термінологія

Булева логіка — це розділ математики, на якому базується робота процесора. Навіть найскладніший штучний інтелект у своїй основі приймає мільярди мікро-рішень "так" або "ні".

2 Інструкція if: структура коду

Python відрізняється від інших мов програмування своєю суворістю до відступів (indentation). Умовний блок коду визначається не дужками, а пробілами.

correct_syntax.py
# Базова структура
if condition:
    # Блок коду з відступом 4 пробіли
    action_1()
    action_2()

# Цей код поза умовою
action_3()

Типова помилка

"IndentationError: expected an indented block".

Виникає, якщо ви забули зробити відступ після двокрапки або використали різну кількість пробілів у межах одного блоку.

3 Анатомія вибору: else та elif

У реальному світі ми рідко маємо лише один варіант. Конструкція if-elif-else дозволяє створити каскад перевірок.

Блок else

Це "запобіжний механізм". Він спрацьовує тоді, коли жодна з попередніх умов не виявилася істинною. Блок else не має власної умови.

Блок elif

Дозволяє додати проміжну перевірку. Ви можете використовувати необмежену кількість elif у одному ланцюжку.

cascade.py
# Приклад каскадної перевірки
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, коли ми порівнюємо значення однієї змінної з багатьма константами.

match_case.py
# Вибір мови інтерфейсу
lang = "UA"

match lang:
    case "UA":
        print("Привіт!")
    case "EN":
        print("Hello!")
    case "FR":
        print("Bonjour!")
    case _:
        print("Language not supported")

Синтаксичний “цукор”

Символ підкреслення _ у блоці case виконує роль "інакше" (як блок else). Це стандарт професійної розробки для обробки непередбачених значень.

Висновок

Навички роботи з умовними операторами дозволяють створювати гнучкі та адаптивні програми. Пам'ятайте про логіку каскаду: порядок умов має значення — від більш специфічних до більш загальних.

bool if-elif-else match-case indentation