web-dev-qa-db-fra.com

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

Duplicate possible:
Opérateur ternaire Python

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

108
huy
a = '123' if b else '456'
201
SilentGhost

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

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

... qui dans 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é contre and or

18
jdi

Ma version cryptique ...

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

Voir PEP 308 pour plus d’informations.

1
ghostdog74