姬長信(Redy)

python中的OR行为:


我写了下面这段代码,我想要做的就是打印一个是,如果传递的数字是一个字符串表示为1,0或2,其他一切都是假的:
number=raw_input()
if number is "1" or "0" or "2":
    print "Yes"
else:
     print "no"

我知道如何使预期的逻辑工作,但我只是想知道为什么它为任何传递给raw_input的数字打印是.我希望答案尽可能详细,因为我无法理解为什么会失败,对我来说似乎是pythonic