605 Stimmen

Wie schreibt man eine inline if-Anweisung für den Druck?

Ich muss einige Dinge nur drucken, wenn eine boolesche Variable auf True . Nachdem ich mir also die diese Ich habe es mit einem einfachen Beispiel versucht:

>>> a = 100
>>> b = True
>>> print a if b
  File "<stdin>", line 1
    print a if b
             ^
SyntaxError: invalid syntax  

Dasselbe gilt, wenn ich schreibe print a if b==True .

Was übersehe ich hier?

5voto

Nande Punkte 406

Sie machen es sich einfach zu einfach.

if b:
   print a

3voto

Daniel Roseman Punkte 565786

Sie brauchen immer eine else in einem inline if:

a = 1 if b else 0

Einfacher wäre es jedoch, wenn man a = int(b) .

2voto

George Mogilevsky Punkte 579

Hmmm, man kann es mit einer Listenverstehen . Dies würde nur Sinn machen, wenn Sie eine echte Reichweite haben, aber es erfüllt seinen Zweck:

print([a for i in range(0,1) if b])

oder nur mit diesen beiden Variablen:

print([a for a in range(a,a+1) if b])

-2voto

IcyFlame Punkte 4823

Warum schreibst du nicht einfach?

if b:
    print a
else:
    print 'b is false'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X