104 votes

Opérateur conditionnel en Python?

savez-vous si Python prend en charge certains mots-clés ou expressions, comme en C ++, pour renvoyer des valeurs basées sur la condition if , le tout dans la même ligne (C ++ if exprimé avec le point d'interrogation ? )

 // C++
value = ( a > 10 ? b : c )
 

172voto

Mark Byers Points 318575

À partir de Python 2.5, vous pouvez le faire:

value = b if a > 10 else c

Auparavant, vous auriez à faire quelque chose comme ce qui suit, bien que la sémantique n'est pas identique à court-circuiter l'effet est perdu:

value = [c, b][a > 10]

Il y a aussi un autre hack à l'aide de "et ... ou" mais il est préférable de ne pas l'utiliser car il a un comportement indésirable dans certaines situations qui peuvent conduire à une dur de trouver le bug. Je ne vais même pas écrire le hack ici car je pense qu'il est préférable de ne pas l'utiliser, mais vous pouvez lire à ce sujet sur Wikipedia si vous le souhaitez.

2voto

ghostdog74 Points 86060

simple est le meilleur et fonctionne dans toutes les versions.

    if a>10: 
       value="b"
   else: 
       value="c"
 

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