2012-10-08 10 views
21

Eventuali duplicati:
Ternary conditional operator in PythonModo Python per `return (valore == 'ok')? 'Ok': 'nok' `

ho questo problema e non hanno idea di chiedere a Google per questo:

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

Intendo la grammatica con:

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

Come nota, questo è chiamato un 'operatore ternario'. –

+0

perché ho ottenuto "-1"? – WBAR

+0

In C, questo è noto come "Operatore Ternario", l'operatore ternario 'Googling' python 'ti indicherà dove vuoi andare. – mgilson

risposta

30

Easy Peasy:

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

E 'un conditional expression.

+2

Anche mascherato come espressione ternaria. – bossylobster

+18

Anche se "espressione condizionale" è un nome molto migliore per questo. Anche in C "operatore ternario" è un nome piuttosto stupido; è come chiamare "+" "operatore binario". – Ben

11

Come su questo caso:

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

* Non prendere sul serio :)

+8

Questo era simile al vecchio modo di farlo prima che aggiungessero la sintassi 'if else'. Ma lo vedevo con una tupla dato che un bool valeva a 0 o 1: '('NOT OK', 'OK') [value ==" ok "] ' – jdi

+0

@jdi che è ancora la pratica prevalente in (senza fiato) * codice golf * – Cyoce

Problemi correlati