140 votes

Equivalent Python de la forme courte "if" en C ++

Dupliquer possible:
Opérateur ternaire Python

Est-il possible d'écrire ce code C / C ++ en Python? a = (b == true ? "123" : "456" )

Merci beaucoup!

255voto

SilentGhost Points 79627
a = '123' if b else '456'

25voto

jdi Points 38029

Tandis que a = 'foo' if True else 'bar' est la manière la plus moderne d’exécuter l’instruction ternary if (python 2.5+), un équivalent 1: 1 de votre version pourrait être:

 a = (b == True and "123" or "456" )
 

... qui en python devrait être raccourci à:

 a = b is True and "123" or "456"
 

... ou si vous voulez simplement tester la véracité de la valeur de b en général ...

 a = b and "123" or "456"
 

? : peut littéralement être échangé pour and or

21voto

Socram Points 41

Ma version cryptique ...

 a = ['123', '456'][b == True]
 

-1voto

ghostdog74 Points 86060

Voir PEP 308 pour plus d’informations.

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