46 votes

équivalent de `a?b:c`

Duplicata possible : Opérateur ternaire Python

Je veux imprimer une chaîne en python. je ne veux pas faire :

 if isfemale_bit:
    print 'F'
else:
    print 'M'

Le meilleur que j'ai en ce moment est print ['M', 'F'][int(isfemale_bit)] ?

Existe-t-il une meilleure alternative ?

J'ai besoin de mon sucre syntaxique !!

57voto

Paul Rosania Points 3447

En Python 2.5, vous pouvez utiliser des conditionnels ternaires comme ceci :

 a if b else c

Il y a plus de discussion ici : Python a-t-il un opérateur conditionnel ternaire ?

16voto

senderle Points 41607

Ah l'opérateur ternaire :

 >>> print 'foo' if True else 'bar'
foo
>>> print 'foo' if False else 'bar'
bar

14voto

Stefano Borini Points 36904
 print 'F' if isfemale_bit else 'M'

9voto

ThibThib Points 3709

Je suppose que vous recherchez une solution similaire à isfemale_bit?'F':'M' en code C Vous pouvez donc utiliser la construction and-or (voir Dive Into Python )

print isfemale_bit and 'F' or 'M'

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:

X