2016-10-04 1 views
0

Dies ist wahrscheinlich das verblüffendste Stück Code, das ich je gesehen habe, und ich kann nicht herausfinden, was damit nicht stimmt.Integer-Check funktioniert nicht

a = 5 
if a == 0 or 1 : 
    print "hi" 

Wenn ausgeführt, druckt es "Hallo", die mich auf jeden Fall verwirrt. Bitte geben Sie einen Einblick, wie ich es nicht hallo zurückkehren und normal verhalten kann. (Es sollte nichts zurückkommen)

+1

Sie werden jeden Wert separat überprüfen müssen: 'wenn a == 0 oder a == 1:' oder * sonst * Sie kurz * sein werden -circuiting * die erste Bedingung mit einer Ganzzahl. –

+0

Es ist 'if (a == 0) oder 1:'. –

+0

"1" wird in Python auf "Wahr" gesetzt - so erhalten Sie 'if False oder True:' was zu 'True' führt – LocalVolatility

Antwort

0
a = 5 
if (a == 0) or (a == 1): #changed from if a == 0 or 1 
    print ("hi") 
#does not print 'hi' 

prüfen a gegen 0 und 1 unabhängig.

+1

Es ist nicht so, dass du falsch liegst; Es ist nur so, dass diese Antwort bereits in einem Duplikat enthalten ist. – Makoto

+0

Guter Fang. Ich habe nicht nachgesehen. –

0

Es sollte auf diese Weise arbeiten:

while not a = 5: 
      if a in [0, 1]: 
       print "Hi" 
Verwandte Themen