5466 votes

Python a-t-il un opérateur conditionnel ternaire ?

<p>Sinon, est-il possible de simuler une concise à l’aide d’autre langage construit ?</p>

6423voto

Vinko Vrsalovic Points 116138

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:

717voto

landon9720 Points 11241
<p>Vous pouvez indexer dans un tuple :<pre><code></code></pre><p><code></code>doit retourner <em>True</em> ou <em>False</em>.<br>Il peut être plus prudent de toujours mettre en œuvre comme :</p><pre><code></code></pre><p>ou vous pouvez utiliser la fonction intégrée <a href="http://docs.python.org/3.3/library/functions.html#bool"> <code></code> </a> afin d’assurer une valeur <a href="http://en.wikipedia.org/wiki/Boolean_data_type">booléenne</a> :</p><pre><code></code></pre></p>

301voto

James Brady Points 11646
<p>Pour les versions antérieures à 2.5, il y a le truc :<pre><code></code></pre><p>Il peut donner des résultats erronés lorsque <code></code> a une valeur booléenne false.<sup> 1</sup><br>Même si elle a l’avantage de l’évaluation des expressions de gauche à droite, ce qui est plus clair à mon avis.</p><p><sub>1. <a href="http://docs.python.org/3.3/faq/programming.html#is-there-an-equivalent-of-c-s-ternary-operator">Yat-il un équivalent de C « ? : » opérateur ternaire ?</a></sub></p></p>

219voto

Simon Zimmermann Points 1239
<p><em>expression1</em> si <em>condition</em> else <em>expression2</em><pre><code></code></pre></p>

132voto

Michael Burr Points 181287

À 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'expression x 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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: