Sinon, est-il possible de simuler une concise à l’aide d’autre langage construit ?
Réponses
Trop de publicités?Oui, il a été ajouté dans la version 2.5. C'est mal vu par certains pythoneux, donc gardez cela à l'esprit.
La syntaxe est la suivante:
a if test else b
Premier test
est évalué, alors a
ou b
est remboursé, selon le type Boolean valeur de test
;
si test
évalue à True a
est retourné, sinon, b
est retourné.
Par exemple:
>>> 'true' if True else 'false'
'true'
>>> 'true' if False else 'false'
'false'
La documentation officielle:
Pour les versions antérieures à 2.5, il y a le truc :
Il peut donner des résultats erronés lorsque `` a une valeur booléenne false.<sup> 1</sup>
Même si elle a l’avantage de l’évaluation des expressions de gauche à droite, ce qui est plus clair à mon avis.
1. Yat-il un équivalent de C « ? : » opérateur ternaire ?
À partir de la documentation:
Les expressions conditionnelles (parfois appelé un "opérateur ternaire") ont la priorité la plus faible de toutes Python opérations.
L'expressionx if C else y
évalue d'abord la condition, C (pas de x); si C est vrai, x est évaluée et sa valeur est renvoyée, sinon, y est évaluée et sa valeur est renvoyée.
Voir PEP 308 pour plus de détails sur les expressions conditionnelles.
Nouveau depuis la version 2.5.