Тернарний оператор у Python – що? як? чому

У світі програмування здатність спрощувати код є цінною як для читабельності коду, так і для ефективності. Одним із інструментів у вашому розпорядженні для цього в Python є тернарний оператор.

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

Коли ми досліджуємо потенціал тернарних операторів, ви побачите, що вони можуть бути дуже корисними для оптимізації ваших програм. Чи то для спрощення логіки прийняття рішень, чи для оптимізації вашого коду, ефективне використання тернарних операторів Python може зробити ваш код набагато легшим для читання та розуміння.

Отже, давайте зазирнемо під капот і побачимо, що вони собою представляють!

Тернарний оператор у Python – що?  як?  чому

Зміст

Що таке тернарний оператор Python?

Тернарні оператори Python пропонують стислий спосіб оцінки оператора на основі того, чи є умова істинною чи хибною, що робить ваш код компактним і легшим для читання. Деякі люди також називають їх умовними виразами або умовними операторами.

Базовий синтаксис

Тернарний оператор був представлений у Python 2.5 і має просту структуру, що складається з трьох операндів:

#demonstrate python ternary operator syntax

result = value_if_true if condition else value_if_false

Цей синтаксис складається з трьох основних частин:

  1. Умова : це логічний вираз, який оцінюється як істинний або хибний, a

  2. value_if_true : значення, яке повертається, якщо логічний вираз є істинним.

  3. value_if_false : значення, яке повертається, якщо логічний вираз є false.

Загальні випадки використання

Тернарні оператори або умовні вирази часто використовуються для спрощення коротких операторів if-else у вашому коді. Ось кілька прикладів, щоб проілюструвати, як можна застосувати тернарний оператор Python:

Приклад 1: Присвоєння значення на основі умови

 age = 25
 
category = "adult" if age >= 18 else "minor"

У цьому прикладі тернарний оператор Python присвоює значення « adult » змінній категорії , якщо вік більше або дорівнює 18, і « minor » в іншому випадку.

Якщо припустити, що ми вибрали оператор if-else замість тернарного оператора Python, це виглядатиме приблизно так:

age = 25

if age > 18:
   category = "Adult"
else:
   category = "Minor"

У цьому випадку ми бачимо, що використання тернарного оператора робить код набагато компактнішим і зручнішим для читання.

Приклад 2: Вибір найменшого з двох чисел

a = 10
b = 15

smallest = a if a < b else b

Тут потрійний умовний оператор допомагає визначити найменше з двох чисел, повертаючи менше значення між a і b.

Приклад 3: Присвоєння мінімального значення двох змінних:

num1 = 10
num2 = 20

min_num = num1 if num1 < num2 else num2
print(min_num)

Результат для цього прикладу буде 10, оскільки тернарний оператор оцінює умову та повертає менше значення.

Приклад 4: Визначення парного чи непарного числа:

num = 5

result = "Even" if num % 2 == 0 else "Odd" 
print(result)

Результат для цього прикладу буде Odd , оскільки умова оцінюється як False , а тернарний оператор повертає відповідний результат.

Ці приклади демонструють, як тернарний оператор Python може зробити ваш код більш лаконічним і легшим для читання. Використовуючи базовий синтаксис і розуміючи типові випадки використання, ви можете ефективно включити тернарний оператор у свій код Python.

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

Для більш ефективної обробки даних ви можете переглянути це відео про те, як обробити відсутні дані в Python за допомогою інтерполяції.

Як використовувати тернарний оператор Python

Звичайний синтаксис тернарного оператора if-else — це лише один із багатьох способів реалізації тернарного оператора Python. Ми також можемо реалізувати це за допомогою загальних структур даних, таких як словники Python, кортежі та списки.

Давайте розглянемо деякі з цих методів:

Картографування словника

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

Ось приклад використання зіставлення словника, щоб перевірити, парне чи непарне число:

#Implement python ternary operator with dictionary mapping

number = 7
result = {True: "Even", False: "Odd"}

is_even = result[number % 2 == 0]

Наведена вище програма поверне значення « Odd », оскільки логічний вираз у дужках має значення False.

Використання кортежів

Кортежі Python — це впорядкована незмінна структура даних, яку можна використовувати для реалізації тернарних операторів. По суті, тернарний оператор кортежу має такий синтаксис:

(condition_is_false, condition_is_true)[condition]

Умова оцінюється як True або False , які в Python дорівнюють цілим числам 1 і o відповідно.

Отже, кортеж повертає будь-який елемент, який відповідає отриманому індексу. Наприклад, якщо умова має значення True , яке дорівнює 1 , код повертає condition_is true .

В іншому випадку він обчислюється як False , що дорівнює 0, і кортеж повертає condition_is_false . Ось приклад нижче:

#Implement ternary operator with tuples

c = False
result = ('a', 'b')[c]

Кортеж зберігатиме значення ' a ' у змінній result , оскільки умова оцінюється як False. Більшість розробників не люблять використовувати цей формат для потрійних операторів, оскільки це може бути трохи заплутаним, що перешкоджає меті.

Лямбда-функції

Лямбда-функції — це анонімні однорядкові функції, які можна використовувати як альтернативу тернарним операторам. Вони дозволяють виконувати прості обчислення та повертати результат на основі заданої умови.

Ось приклад використання лямбда-функції для знаходження максимуму з двох чисел:

#implement python ternary operator with lambda functions

a, b = 10, 20
max_value = (lambda: a, lambda: b)[a < b]()

Лямбда-функція повертає a , якщо умова оцінюється як True . В іншому випадку він повертає b .

Що таке вкладений тернарний оператор?

Вкладений тернарний оператор — це умовний вираз із двома чи більше логічними виразами. Ви можете створити це, з’єднавши дві або більше логічних умов разом, щоб перевірити кілька умов.

Ми можемо використовувати ці типи тернарних операторів для моделювання операторів « elif » і вкладених блоків if-else.

Давайте розглянемо тернарний оператор.

age = 21

#Normal elif statement
if age< 21:
   print('Child')
elif age< 25:
   print ('young adult')
else:
   print('Adult')

#elif statement as a ternary operator
print('Child') if age < 18 else print('Young adult') if age <21 else print ('Old Person')

#Output: 'Young Adult'

Ви можете додати дужки до тернарного оператора Python, якщо хочете імітувати вкладений оператор if-else. Однак це не є хорошою практикою, оскільки тернарний оператор може стати дуже довгим і нечитабельним.

У таких випадках вам краще використовувати стандартний блок if-else у своєму коді.

Які переваги тернарного оператора Python?

Є багато переваг, які ви отримуєте від використання тернарного оператора Python у своєму коді. Деякі з цих переваг включають:

Читабельність і стислість коду

Використання тернарного оператора Python може зробити ваш код більш лаконічним, дозволяючи писати умовні вирази в одному рядку.

Це особливо корисно при роботі з простими та зрозумілими умовами. Ваш код стане більш читабельним і легшим для розуміння, оскільки він зменшує потребу в кількох рядках операторів if-else.

Зауваження продуктивності

Хоча тернарний оператор може призвести до більш компактного коду, його вплив на продуктивність зазвичай мінімальний. Інтерпретатор Python розроблено для оптимізації виконання коду, тобто як тернарний оператор, так і оператори if-else загалом мають однакові характеристики продуктивності.

Під час кодування віддавайте перевагу читабельності та зручності обслуговування над продуктивністю, якщо ви не працюєте з критично важливими для продуктивності програмами.

Пам’ятайте, що різні ситуації вимагають різних підходів. Іноді використання тернарного оператора є корисним, тоді як в інших випадках доцільнішим може бути дотримання традиційних операторів if-else.

Недоліки тернарного оператора Python

Тернарні оператори чудово підходять для спрощення коду та компактності. Однак їх використання може мати деякі недоліки.

Ось деякі з цих недоліків:

Вкладені тернарні оператори можуть бути складними

У деяких випадках тернарний оператор може зробити код менш читабельним, особливо при використанні складних або вкладених умов. У таких ситуаціях включення звичайних операторів if-else може бути більш доречним для підтримки ясності коду.

Це особливо вірно, коли ви намагаєтеся замінити вкладений оператор if-else тернарним оператором. Це рідко призводить до чистого коду.

Кожен операнд є виразом

Усі операнди або значення, що повертаються в тернарному операторі Python, є виразами, а не операторами. Спроба використати оператор присвоєння в синтаксисі тернарного оператора призведе до синтаксичної помилки.

Ви можете переглянути приклад цього в коді нижче.

'Adult' if True else x = 44

Як ви можете бачити нижче, це призводить до синтаксичної помилки. У таких випадках вам слід використовувати блок if-else замість умовного оператора.

Тернарний оператор у Python – що?  як?  чому

Найкращі практики та поради

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

По-перше, переконайтеся, що ваш умовний вираз короткий і лаконічний. Довгі та складні умови можуть ускладнити розуміння логіки потрійного оператора.

Якщо ви зіткнулися зі складною умовою, можливо, краще використовувати звичайний оператор if-else.

#demonstrate nested ternary operator
# Good example 
result = "positive" if number >= 0 else "negative" 


# Bad example 
result = (a + b if (x > 10 and y > 20) else c + d) if (z > 30 and p > 40) else ...

По-друге, уникайте вкладення кількох тернарних операторів, що може призвести до заплутаності та нечитабельності коду. Подібно до складних умов, розгляньте можливість використання оператора if-else для кращої читабельності.

# Good example 

x = A if condition1 else B if condition2 else C 

# Bad example 
x = A if condition1 else (B if condition2 else (C if condition3 else ...)) 

Нарешті, пам’ятайте про відповідні випадки використання тернарного оператора. Він найбільше підходить для простих однорядкових завдань, де легко зрозуміти і умову, і результат.

Якщо ваш код передбачає складнішу логіку, цикли або кілька присвоювань, краще дотримуватися традиційних операторів if-else.

Поширені запитання щодо тернарних операторів Python

Ось кілька запитань, які нові програмісти зазвичай задають нам щодо тернарних операторів:

Як ви використовуєте тернарний оператор у операторі повернення в Python?

Ви можете використовувати тернарний оператор Python у операторі повернення функції. Все, що вам потрібно зробити, це додати його до заяви про повернення.

Ось приклад:

#program to check cheese age

def is_legal(age):
  return 'legal' if age > 18 else 'Not legal'

Чи тернарний оператор швидший за оператор if-else у Python?

Ні, обидва мають схожі характеристики. Потрійний оператор і оператор if-else мають часову складність O(1).


Поле пошуку PowerApps: як додати та налаштувати

Поле пошуку PowerApps: як додати та налаштувати

Дізнайтеся, як створити поле пошуку PowerApps з нуля та налаштувати його відповідно до загальної теми вашої програми.

Приклад SELECTEDVALUE DAX – вибір розділювача врожаю

Приклад SELECTEDVALUE DAX – вибір розділювача врожаю

Збирайте або фіксуйте значення в мірі для повторного використання в іншій мірі для динамічних обчислень за допомогою SELECTEDVALUE DAX у LuckyTemplates.

Історія версій у списках SharePoint

Історія версій у списках SharePoint

Дізнайтеся, як історія версій у SharePoint може допомогти вам побачити еволюцію певних даних і скільки змін вони зазнали.

Вибір шістнадцяткових кодів кольорів для звітів LuckyTemplates

Вибір шістнадцяткових кодів кольорів для звітів LuckyTemplates

Ось інструмент для створення звітів і візуальних матеріалів, засіб вибору шістнадцяткових кодів кольорів, за допомогою якого можна легко отримати кольори для звітів LuckyTemplates.

Динамічний роздільник дат у LuckyTemplates із використанням таблиці Менделєєва

Динамічний роздільник дат у LuckyTemplates із використанням таблиці Менделєєва

Ви можете легко відобразити діапазон дат як роздільник у своєму звіті за допомогою таблиці періодів. Використовуйте M-код, щоб створити динамічний роздільник дат у LuckyTemplates.

Таблиці пропорцій і частот в Excel

Таблиці пропорцій і частот в Excel

Збирався зануритися в частотні таблиці в Excel, а також у таблиці пропорцій. Добре подивіться, що це таке і коли їх використовувати.

Як інсталювати DAX Studio та табличний редактор у LuckyTemplates

Як інсталювати DAX Studio та табличний редактор у LuckyTemplates

Дізнайтеся, як завантажити та інсталювати DAX Studio та Tabular Editor 3 і як налаштувати їх для використання в LuckyTemplates і Excel.

Візуалізація карти форми LuckyTemplates для просторового аналізу

Візуалізація карти форми LuckyTemplates для просторового аналізу

Цей блог містить візуалізацію Shape Map для просторового аналізу в LuckyTemplates. Я покажу вам, як ви можете ефективно використовувати цю візуалізацію з її функціями та елементами.

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

У цьому підручнику я демонструю унікальну ідею щодо фінансової звітності, яка полягає в розподілі результатів для попереднього визначення шаблонів таблиць у LuckyTemplates.

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Створіть показники DAX у LuckyTemplates, використовуючи наявні показники або формули. Це те, що я називаю технікою розгалуження міри.