В данной статье разберем следующие вопросы:
- Что такое тернарный оператор?
- Какой у него синтаксис?
- Какой алгоритм работы?
- Как его использовать?
Что такое тернарный оператор?
Тернарный оператор (тернарная условная операция) - оператор (операция), который возвращает свой второй или третий операнд в зависимости от результатов логического выражения.
Тернарный оператор появился в Python в версии 2.5.
Какой у него синтаксис?
Тернарный оператор в Python имеет следующий синтаксис:
x = true_value if condition else false_value
true_value - операнд возвращающийся при положительном результате логического выражения;
condition - логическое выражение (условие);
false_value - операнд возвращающийся при отрицательном результате логического выражения;
Какой алгоритм работы?
Для ответа на данный вопрос нам понадобиться простой тернарный оператор.
num = a if a > 0 else b
Алгоритм работы тернарного оператора не отличается от алгоритма условного оператора:
- Вычисляется логическое выражение (в нашем случае a > 0);
- Если логическое выражение истинно (true), то переменной num присваивается a, в противном случае - присваивается b.
Как его использовать?
Существует несколько методов использования тернарного оператора.
Метод 1. Простой
Код программы:
# Исходные данные
a, b = 7, 10
# Использование тернарного оператора простым методом
num = a if (a > 0) and (b > 10) else b
# Вывод результата
print(num)
Результат выполнения кода:
10
Примечание: В тернарных операторах нет возможности использовать конструкцию if-elif-else.
Метод 2. Использование кортежей
Код программы:
# Исходные данные
a, b = 7, 10
# Использование кортежа
num = (b, a) [a < b]
# Вывод результата
print(num)
Результат выполнения кода:
7
Метод 3. Использование словаря
Код программы:
# Исходные данные
a, b = 7, 10
# Использование словаря
num = {True: a, False: b}[a < b]
# Вывод результата
print(num)
Результат выполнения кода:
7
Метод 4. Использование лямбды (lambda)
Код программы:
# Исходные данные
a, b = 7, 10
# Использование lambda
num = (lambda: b, lambda: a)[a > b]()
# Вывод результата
print(num)
Результат выполнения кода:
10
Метод 5. Использование вложенного тернарного оператора
Код программы 1:
# Исходные данные
a, b, c = 1, 5, 11
# Использование вложенного тернарного оператора
max_num = a if a > b else c if c > b else b
min_num = a if a < b else c if c < b else b
# Вывод результата
print('Максимальное: ', max_num, '\n', 'Минимальное: ', min_num)
Результат выполнения кода 1:
Максимальное: 11
Минимальное: 1