2012-10-08 43 views
21

Duplicar posibles:
Ternary conditional operator in Pythonforma pitonica para `return (value == 'ok')? 'Bien': 'nok' `

tengo este problema y no tienen idea de pedir a Google para esto:

(value == 'ok') ? 'ok' : 'not ok'

Me refiero a la gramática con:

(expression) ? (return if <expresion> is true) : (return this value if <expresion> is false 
+7

Como nota, esto se llama un 'operador ternario'. –

+0

¿por qué recibí "-1"? – WBAR

+0

En C, esto se conoce como el "operador ternario", el operador ternario python de Google lo señalará hacia donde desea ir. – mgilson

Respuesta

30

Peasy fácil:

'String ok' if value == 'ok' else 'String nok' 

Es un conditional expression.

+2

También se enmascara como una expresión ternaria. – bossylobster

+18

Aunque "expresión condicional" es un nombre mucho mejor para ello. Incluso en C "operador ternario" es un nombre bastante estúpido; es como llamar a '+' "operador binario". – Ben

11

¿Qué tal este caso:

{True: 'String ok', False: 'String nok'}[value == 'ok'] 

* No tomar en serio :)

+8

Esto era similar a la antigua forma de hacerlo antes de agregar la sintaxis 'if else'. Pero solía verlo con una tupla ya que un bool evalúa a 0 o 1: '('NO OK', 'OK') [valor ==" ok "] ' – jdi

+0

@jdi que sigue siendo la práctica habitual en (gasp) * código golf * – Cyoce

Cuestiones relacionadas