2016-07-03 11 views
1

Ich versuche, einen ternären Zustand in meinem Programm wie folgt zu verwenden:Python: Ternary Operator Syntaxfehler

c = 12 
(print c) if (c == 10) else (print 'c is not 10') 

Allerdings wirft dies einen Syntaxfehler. Was scheint hier falsch zu sein?

+3

Sie können nur haben * Ausdrücke * nicht * Aussagen *, in einem ternären Ausdruck. – jonrsharpe

+0

BTW, in Python 3 funktioniert das Folgende: 'c = 12; (print (c)) if (c == 10) else (print ('c ist nicht 10')) ' – boardrider

Antwort

4

Sie würden es tun, wie folgt:

print c if c == 10 else 'c is not 10' 

Die Klammern sind nicht erforderlich, und Sie müssen mit dem „print“ beginnen; Python kann den gesamten Befehl nicht wie Perl in eine Bedingung setzen.

Es gibt keine Python-Äquivalent von Perl:

print "Done!" if $done; 
+1

Das Zitat sollte immer da sein. Bearbeitete meinen Code im ursprünglichen Post. –

+0

Oh ok. Löst das dein Problem? – Will

0

ihr tun sollt print(c) statt (print c)

+0

'c = 12'' print (c) wenn (c == 10) else print ('not c') 'gibt immer noch' syntax error'. Es geht nicht um Klammern, wie Will in seiner Antwort erwähnt. – Kylar

Verwandte Themen