tutorial lenguaje español descargar python

lenguaje - ¿Cómo condensar if/else en una línea en Python?



python wikipedia (4)

Existe la expresión condicional:

a if cond else b

pero esta es una expresión, no una declaración.

En las sentencias if, if (o elif u else ) se pueden escribir en la misma línea que el cuerpo del bloque si el bloque es solo uno como:

if something: somefunc() else: otherfunc()

pero esto se desaconseja como una cuestión de formato de estilo.

Posible duplicado:
Python Ternary Operator
Poniendo una declaración if-then simple en una línea

¿Hay alguna manera de comprimir una instrucción if / else en una línea en Python?
A menudo veo todo tipo de atajos y sospecho que también se puede aplicar aquí.


Python''s if se puede usar como un operador ternario :

>>> ''true'' if True else ''false'' ''true'' >>> ''true'' if False else ''false'' ''false''


Solo para usar como un valor:

x = 3 if a==2 else 0

o

return 3 if a==2 else 0


Un ejemplo de la forma en que Python hace las expresiones "ternarias":

i = 5 if a > 7 else 0

se traduce como

if a > 7: i = 5 else: i = 0

Esto realmente es útil cuando se usan listas de comprensión, o a veces en declaraciones de retorno, de lo contrario no estoy seguro de que ayude tanto en la creación de código legible.

El problema de legibilidad se discutió extensamente en esta reciente pregunta SO mejor que usar la instrucción if-else en python .

También contiene varias otras formas inteligentes (y algo ofuscadas ) para realizar la misma tarea. Vale la pena leer solo sobre la base de esas publicaciones.