2016-10-04 36 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"