Тернарний оператор у Python – це скорочена форма оператора if-else. Він дозволяє перевірити умову, та повернути значення на основі того, чи є ця умова істинною або хибною.

Синтаксис:

true_value if condition else false_value

Нижче буде розглянуто приклади використання тернарного оператора у Python.

1. Тернарний оператор if-else:

active = True

status = 'Активний' if active else 'Неактивний'
print(status)

# OUTPUT: Активний

2. Тернарний оператор у вкладеному операторі If-else:

a, b = 10, 20

result = 'equal' if a == b else 'a is greater' \
    if a > b else 'b is greater'
print(result)

# OUTPUT: b is greater

3. Тернарний оператор використовуючи кортеж (tuple) Python:

a, b = 10, 20

result = ('a is greater', 'b is greater')[a < b]
print(result)

# OUTPUT: b is greater

У прикладі вище, оголошується кортеж що містить два значення – False і True, з індексами 0 та 1 відповідно. Якщо результат умови False (тобто 0), повертається значення кортежу з індексом 0. Якщо умова має значення True, повертається значення кортежу з індексом 1. Докладніше про кортежі у Python.

4. Тернарний оператор використовуючи словник (dict) Python:

a, b = 10, 20

result = {True: 'a is greater', False: 'b is greater'}[a > b]
print(result)

# OUTPUT: b is greater

5. Тернарний оператор використовуючи lambda функцію Python:

a, b = 10, 20

result = (lambda: 'a is greater', lambda: 'b is greater')[a < b]()
print(result)

# OUTPUT: b is greater

Тут аналогічно до прикладу з кортежом, оголошується кортеж з елементами False та True (індекси 0 та 1), але в якості елементів виступають lambda функції, котрі використовуються для одноразового обчислення результуючого значення.

6. Тернарний оператор разом з функцією print:

a, b = 10, 20

print('a is greater') if (a > b) else print('b is greater')

# OUTPUT: b is greater

Обмеження тернарного оператора Python

Тернарний оператор Python використовується для написання скороченої форми умовних операторів, але він також має деякі обмеження.

  • Читабельність: Тернарний оператор може зробити прості умовні вирази більш лаконічними, але він також може зменшити читабельність коду, особливо якщо умова та вирази є складними.
  • Потенційні помилки: Неправильні розміщення дужок або порядок виразів, можуть призвести до синтаксичних помилок, які може бути важче виявити.
  • Налагодження (Debug): Під час налагодження коду, можуть виникнути складнощі з перевіркою значень змінних, котрі беруть участь у складному тернарному виразі.
  • Підтримка та розширюваність: Складні тернарні вирази може бути важче підтримувати та розширювати.
  • Не можна використовувати оператори присвоювання: Кожен операнд тернарного оператора Python є виразом, що означає неможливість використання операторів присвоювання, всередині будь-якого з них. При спробі програма видасть помилку. Приклад:
x = 1 if True else y = 2
print(f'{x} {y}')

Результатом коду з прикладу вище буде помилка: SyntaxError: invalid syntax.


Мітки: