2016-10-04 49 views
0

這是很有可能是我見過的最令人困惑的代碼片段,我似乎無法弄清楚它有什麼問題。整數檢查不起作用

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

當運行時,它會打印「hi」,這一切都會讓我感到困惑。 請提供一些見解,我可以如何使它不返回嗨,並表現正常。 (應該沒有被返回)

+1

你必須單獨檢查每個值:'如果== 0或== 1:'或*否則*你會*短用一個整數電路*第一個條件。 –

+0

它是'如果(a == 0)或1:'。 –

+0

'1'在Python中評估爲'True' - 所以你得到'if False or True:'評估爲True' – LocalVolatility

回答

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

檢查a01獨立。

+1

這不是你錯了;只是這個答案已經包含在一個副本中。 – Makoto

+0

好的。我沒有檢查。 –

0

應該以這種方式工作:

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