Python тернарный оператор присваивания

How to Do Ternary Operator Assignment in Python

Many programming languages, including Python, have a ternary conditional operator, which is most often used for conditional variable assignment. To illustrate, consider this code:

if game_type == 'home': shirt = 'white' else: shirt = 'green'

That’s very clear, but it takes four lines of code to assign a value to game_type .

The syntax for the ternary operator in Python is:

[on_true] if [expression] else [on_false]

Using that syntax, here is how we would rewrite the code above using Python’s ternary operator:

shirt = 'white' if game_type == 'home' else 'green'

It’s still pretty clear, but much shorter. Note that the expression could be any type of expression, including a function call, that returns a value that evaluates to True or False .

  1. Fixing WebVTT Times with Python
  2. Using Python to Convert Images to WEBP
  3. Scientific Notation in Python
  4. Understanding Python’s __main__ variable
  5. Converting Leading Tabs to Spaces with Python
  6. pow(x, y, z) more efficient than x**y % z and other options
  7. A Python Model for Ping Pong Matches
  8. Bulk Convert Python files to IPython Notebook Files (py to ipynb conversion)
  9. Python’s date.strftime() slower than str(), split, unpack, and concatenate?
  10. Basic Python Programming Exercise: A Penny Doubled Every Day
  11. Bi-directional Dictionary in Python
  12. How to find all your Python installations on Windows (and Mac)
  13. Associate Python Files with IDLE
  14. Change Default autosave Interval in JupyterLab
  15. Python: isdigit() vs. isdecimal()
  16. Python Clocks Explained
  17. Python Color Constants Module
  18. Maximum recursion depth exceeded while calling a Python object
  19. When to use Static Methods in Python? Never
  20. Finally, a use case for finally – Python Exception Handling
  21. Creating an Email Decorator with Python and AWS
  22. Python Coding Challenge: Two People with the Same Birthday
  23. How to Create a Simple Simulation in Python – Numeric Data
  24. Collatz Conjecture in Python
  25. Simple Python Script for Extracting Text from an SRT File
  26. Python Virtual Environments with venv
  27. Mapping python to Python 3 on Your Mac
  28. How to Make IDLE the Default Editor for Python Files on Windows
  29. How to Do Ternary Operator Assignment in Python (this article)
  30. How to Convert Seconds to Years with Python
  31. How to Create a Python Package
  32. How to Read a File with Python
  33. How to Check the Operating System with Python
  34. How to Use enumerate() to Print a Numbered List in Python
  35. How to Repeatedly Append to a String in Python
  36. Checking your Sitemap for Broken Links with Python
  37. How to do Simultaneous Assignment in Python
  38. Visual Studio Code — Opening Files with Python open()
  39. How to Slice Strings in Python
  40. How Python Finds Imported Modules
  41. How to Merge Dictionaries in Python
  42. How to Index Strings in Python
  43. How to Create a Tuple in Python
Читайте также:  Javascript событие при выборе select

Источник

Тернарный оператор в Python

Тернарный оператор в Python позволяет писать утверждения if-else в виде простых однострочных выражений. Вот как выглядит синтаксис тернарного оператора в Python:

[true_expr] if [condition] else [false_expr]

Из этого полного руководства вы узнаете, что собой представляют тернарные операторы в Python. Также мы на примерах разберем, когда и зачем их использовать. Но сперва давайте поговорим о тернарных операторах в целом, потому что эта концепция встречается не только в Python, но и в других языках программирования.

Что такое тернарный оператор

Одной из фундаментальных концепций программирования являются операторы if-else . С их помощью разработчики могут добавлять логику в свой код. Это позволяет писать программы, обладающие способностью принимать решения.

Типичный оператор if-else выглядит следующим образом (в псевдокоде):

Но в некоторых очень простых блоках if-else может не потребоваться расширять условие до нескольких строк.

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

В типичном языке программирования тернарный оператор может выглядеть следующим образом:

condition ? true_expr : false_expr

true_expr выполняется, если условие истинно, а false_expr выполняется, если условие оценивается как ложное.

Python также поддерживает тернарные условные операторы. Но синтаксис немного отличается от того, что можно увидеть в других языках программирования.

Тернарный оператор в Python

В Python при помощи тернарного условного оператора можно сжать оператор if-else в однострочное выражение.

Тернарный оператор в Python имеет довольно уникальный синтаксис:

true_expr if condition else false_expr

true_expr выполняется, если условие оценивается как True , а false_expr – если условие оценивается как False .

Обратите внимание, что тернарный условный оператор можно применять только к одиночным выражениям. Если вам нужно выполнить более одного выражения, используйте традиционный оператор if-else .

Кроме того, необходимо иметь оба выражения true_expr и false_expr . Другими словами, нельзя использовать тернарный оператор без части else .

Пример использования тернарного оператора

Давайте применим тернарный оператор для преобразования блока if-else в однострочное выражение. Сначала посмотрите на этот фрагмент кода.

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

С помощью тернарного условного оператора вы можете сжать этот оператор if-else в однострочное выражение.

Вот как выглядит тот же код при использовании тернарного оператора:

age = 25 candrive = False if age < 18 else True print(candrive) # Результат: # True

Таким образом вы сможете сэкономить несколько строк кода при работе с простыми условиями if-else .

Но не стоит менять все ваши многострочные операторы if-else ! Существует множество причин, по которым не следует использовать тернарный оператор. Далее вы узнаете о плюсах и минусах тернарных операторов в Python.

Недостатки тернарных операторов Python

Несмотря на то, что тернарные условные операторы позволяют вам писать меньше строк кода, сжимая блок if-else в одну строку, не всегда стоит это делать. На самом деле, большинство условий if-else читаются лучше, если написаны в несколько строк.

Пример

Давайте разберем следующий код:

n = 10 a = 1 if n < 10 else 2 if n >10 else 0

Этот однострочный код является примером вложенных тернарных операторов. Конечно, весь код помещается в одной строке, но читать его очень трудно.

Теперь давайте изменим этот однострочник на традиционный оператор if-elif-else :

n = 10 if n < 10: a = 1 elif n >10: a = 2 else: a = 0

Намного лучше, не правда ли?

Этот пример показывает, насколько важна читабельность кода. Даже если вы можете выразить что-то одной строкой, это не значит, что вы должны это делать.

В общем, используйте тернарные операторы только в том случае, если они делают ваш код более читабельным. Если сокращение трех строк кода идет в ущерб читабельности и легкости поддержки, то оно того не стоит.

Заключение

Тернарные операторы в Python позволяют сократить код условий if-else .

true_expr if condition else false_expr

Тернарные операторы могут быть полезны, если выражения if-else содержат простую логику и сжатие кода в одну строку не ухудшает качество. Но если ваши условия хоть немного сложнее самых базовых, операторы if-else следует располагать на нескольких строках.

Спасибо, что прочитали. Успешного кодинга!

Перевод статьи Artturi Jalli “Python Ternary Operator”.

Источник

Тернарные операции в Python

Очень часто новички в Python не могут разобраться с тернарными операторами. Помимо путаницы с тем, что же называют тернарным оператором, их часто пытаются применить не к месту. Однако тернарные операции очень удобны, и откладывать их изучение — значит усложнять себе работу.

Тернарная условная операция

В программировании тернарная (от лат. ternarius — «тройной») условная операция состоит из условного выражения и двух аргументов. В зависимости, от результата вычисления условного выражения, тернарная операция вернет один из аргументов.

image

Тернарные условные операции используются в разных языках программирования. Впервые они появились в Algol-60, где имели такую форму:

В некоторых языках (в основном, испытавших влияние C) подобные операции обозначают символами ?: :

Тернарные операторы в Python

В Python тернарные операции имеют простой и понятный синтаксис:

Значение 1> if условие> else значение 0> 

Это делает понимание кода интуитивным. Такие строки читаются, как предложения на английском. Например,

x = 'today' if date == today else date 

можно прочитать как "Икс равно 'today' если дата сегодняшняя, а иначе — дате". Такая лаконичная запись эстетичнее, чем простые условные блоки, однако имеет свои ограничения. Например, вы не можете использовать в ней break , continue , pass и другие полезные инструкции.

Не стоит путать тенрарные операторы с однострочной записью if :

a, min = 10, 3 if a > min: print(a); print(a - min) # 10, 7 

В этом случае, если а больше min , все действия после двоеточия будут выполнены последовательно, а иначе — просто пропущены.

Не забывайте, что операторы сравнения имеют наименьший приоритет. Изменить его можно с помощью скобок:

Тернарные операции могут быть вложенными.

x = ( a if a != 0 else b if b != 0 else c if c != 0 else d ) 

Очень часто тернарные операции используются в генераторах и списковых включениях. Это единственный способ заменить значения, не подходящие по условию.

lst = [-9, 2, 0] g = (i if i >= 0 else 0 for i in lst) # 0 2 0 lc = [-i if i  0 else 0 for i in lst] # [9, 0, 0] 

Обратите внимание, что тернарные операторы используют перед for . После этой инструкции нельзя использовать else .

Пользуясь тем, что True == 1 , а False == 0 , в записи тернарных операций можно обойтись вообще без if и else :

Если выражение возвращает False , из кортежа будет выбран нулевой элемент, а если True - первый.

Заключение

Тернарные операции — удобный способ записать условный блок в одну строку. Это делает код более лаконичным и понятным. Их можно использовать в генераторах и списковых включениях. Вложенные тернарные операторы помогают сокращать блоки if-elif-else , однако их возможности не безграничны, и не всякий условный блок можно заменить.

Практический Python для начинающих

Практический Python для начинающих

Станьте junior Python программистом за 7 месяцев

Источник

Оцените статью