Comment puis-je comprimer un if
/ else
à une ligne en Python ?
Réponses
Trop de publicités?Un exemple de la façon dont Python utilise les expressions "ternaires" :
i = 5 if a > 7 else 0
se traduit par
if a > 7:
i = 5
else:
i = 0
Cela s'avère utile lors de l'utilisation de compréhensions de listes, ou parfois dans les instructions de retour, sinon je ne suis pas sûr que cela aide beaucoup à créer un code lisible.
La question de la lisibilité a été longuement débattue dans cette récente question de l'OS. meilleur moyen que d'utiliser l'instruction if-else en python .
Il contient également d'autres astucieux (et quelque peu obscurci ) pour accomplir la même tâche. Il vaut la peine d'être lu rien que sur la base de ces messages.
Python if
peut être utilisé comme opérateur ternaire :
>>> 'true' if True else 'false'
'true'
>>> 'true' if False else 'false'
'false'
Il y a l'expression conditionnelle :
a if cond else b
mais il s'agit d'une expression, pas d'une déclaration.
Dans les instructions "if", l'élément if
(ou elif
o else
) peut être écrit sur la même ligne que le corps du bloc si ce dernier ne comporte qu'une seule ligne :
if something: somefunc()
else: otherfunc()
mais cela est déconseillé pour des raisons de formatage.