logo

Operador ternari en Python

En Python , l'operador ternari determina si una condició és certa o falsa i després retorna el valor adequat com a resultat. L'operador ternari és útil en els casos en què hem d'assignar un valor a una variable en funció d'una condició simple i volem mantenir el nostre codi més concís, tot en una sola línia de codi.

És convenient quan volem evitar escriure diverses línies per a una condició simple si no. Com en el simple if-else, la primera opció, el valor_vertader s'executarà quan la condició proporcionada a l'expressió sigui True. Si la condició retorna False, aleshores valor_fals s'executarà.



  Syntax:     true_value   if   condition   else   false_value>

L'operador ternari es pot utilitzar de diverses maneres. Vegem alguns exemples diferents per utilitzar operadors ternaris a Python:

Taula de contingut

Python Ternary Si més

La manera més senzilla d'utilitzar un operador ternari de Python és quan tenim un operador simple si una altra condició , és a dir, qualsevol de les dues condicions és vertadera i l'altra és falsa.



Exemple: En aquest codi compararem i trobarem el nombre mínim dels dos nombres donats utilitzant els operadors ternaris en Python i emmagatzemant el resultat en un nom de variable 'min'. Si ' a 'és mínim, el valor de' a ' s'imprimirà, en cas contrari el valor de ' b 's'imprimirà.

en java
Python
# Program to demonstrate ternary operator a = 10 b = 20 # python ternary operator min = 'a is minimum' if a < b else 'b is minimum' print(min)>

Sortida:

a is minimum>

Operador ternari a Anidat If else

També es pot utilitzar l'operador ternari Declaració if-else imbricada en Python . la sintaxi del mateix és la següent:



Syntax: true_value if condition1 else (true_value if condition2 else false_value)>

Exemple: En aquest exemple, estem utilitzant un if-else imbricat per demostrar l'operador ternari. Si ' a' i ' b 'són iguals, imprimirem 'a i b són iguals' i, en cas contrari, si 'a' és més gran que 'b', imprimirem 'a és més gran que b' en cas contrari 'b és més gran que a'.

Python
# Python program to demonstrate nested ternary operator a = 10 b = 20 print('Both are equal' if a == b else 'a is greater' if a>b sinó 'b és més gran')>>> 

Sortida:

b is greater>

Operador ternari que utilitza Python Tuple

L'operador ternari també es pot escriure utilitzant Tuples Python . En aquest cas, declarem els valors Fals i True dins d'una tupla a l'índex 0 i 1 respectivament. En funció de la condició, si el resultat és Fals, és a dir 0, s'executa el valor de l'índex 0. Si la condició resulta en True, s'executa el valor de l'índex 1 de la tupla.

Exemple: En aquest exemple, compararem i imprimirem el valor mínim, on els valors a executar es declaren dins de la tupla.

Python
# Program to demonstrate ternary operator a = 10 b = 20 # python ternary operator usinf tuple print(('b is minimum', 'a is minimum') [a < b])>

Sortida:

a is minimum>

Operador ternari que utilitza el diccionari Python

L'operador ternari de Python també es pot escriure utilitzant Diccionari Python . En aquest cas, utilitzem les paraules clau True i False com a claus del diccionari i els proporcionem un valor que s'executarà en funció del resultat de la condició.

  Syntax: (True: true_value, False: false_value) [condition]>

Exemple: En aquest exemple, estem utilitzant Diccionari per demostrar l'operador ternari, on hem donat uns valors True i False a les claus del diccionari, que s'executaran en funció del resultat de la condició.

Python
# Python program to demonstrate ternary operator a, b = 10, 20 print({True: 'a is minimum', False: 'b is minimum'} [a < b])>

Sortida:

a is minimum>

Operador ternari que utilitza Python Lambda

En Python, funcions lambda s'utilitzen quan només tenim una expressió per avaluar. Per tant, utilitzar l'operador teranery amb lambda ho fa bastant senzill i fàcil. Funciona exactament com la tupla. És a dir, declarem els valors Fals i True a l'índex 0 i 1 respectivament.

Syntax: (lambda: false_value, lambda: true_value) [condition] ()>

Exemple: En aquest exemple, estem utilitzant Lambda per demostrar l'operador ternari. Estem utilitzant tupla per seleccionar un element i si [a

Python
# Python program to demonstrate ternary operator a = 10 b = 20 print((lambda: 'b is minimum', lambda: 'a is minimum')[a < b]())>

Sortida:

a is minimum>

Operador ternari amb funció d'impressió

L'operador ternari també es pot utilitzar directament amb el Declaració d'impressió de Python . La seva sintaxi és la següent:

Syntax: print(true_value) if (condition) print(false_value)>

Exemple: En aquest exemple, estem trobant el nombre mínim entre dos nombres utilitzant l'operador ternari de Python amb la instrucció d'impressió.

Python
a = 10 b = 20 # ternary operator with print statement print(a,'is minimum') if (a < b) else print(b,'is minimum')>

Sortida:

10 is minimum>

Limitacions de l'operador ternari Python

L'operador ternari de Python s'utilitza per escriure declaracions condicionals concises, però també té algunes limitacions.

  • Llegibilitat: T L'operador ernari pot fer que les expressions condicionals simples siguin més concises, també pot reduir la llegibilitat del vostre codi, especialment si la condició i les expressions són complexes.
  • Potencial d'error : La col·locació incorrecta dels parèntesis, la falta de dos punts o l'ordre incorrecte de les expressions poden provocar errors de sintaxi que poden ser més difícils de detectar.
  • Depuració : Quan es depura, pot ser més difícil inspeccionar els valors de les variables implicades en una expressió ternària complexa.
  • Manteniment i extensibilitat : Les expressions ternàries complexes poden ser més difícils de mantenir i estendre, especialment quan la base de codi creix.
  • No es poden utilitzar les declaracions de l'assignació: Cada operand de l'operador ternari de Python és an expressió , no una declaració, això vol dir que no podem utilitzar declaracions d'assignació dins de cap d'elles. En cas contrari, el programa llançarà un error.

Exemple:

Python
3 if True else x=6>

Sortida:

File 'Solution.py', line 1  3 if True else x=6  ^ SyntaxError: can't assign to conditional expression>