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
- Operador ternari a Anidat If else
- Operador ternari que utilitza Python Tuple
- Operador ternari que utilitza el diccionari Python
- Operador ternari que utilitza Python Lambda
- Operador ternari amb funció d'impressió
- Limitacions de Python Ternary Operator
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 javaPython
# 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.
# 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>