Тернарний оператор у 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 greater3. Тернарний оператор використовуючи кортеж (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 greater5. Тернарний оператор використовуючи 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.