或者操作员混淆python

时间:2013-12-18 01:29:50

标签: python adventure

我正在制作一个快速的zork游戏,但我使用“或”运算符遇到了这个问题。我认为这很简单,但我无法弄清楚为什么这不起作用。现在,如果你输入“n”,你应该得到“这个工作”,因为它等于字符串“n”。相反,它打印出“它工作”和“这工作”所以显然我用“或”错了。

   x=0
    while x<20:
        response = input("HI")
        if response!= 'n':
            print("it works")

        if response == 'n':
            print("this works")
        x+=1

使用前或工作

x=0
while x<20:
    response = input("HI")
    if (response!= 'n') or (response != 's'):
        print("it works")


    if (response == 'n') or (response == 's'):
        print("this works")
    x+=1

使用后或打印出来。它可能是显而易见的东西-.-

2 个答案:

答案 0 :(得分:4)

表达式:

(response != 'n') or (response != 's')
对于任何字符串响应,

始终为True 。如果response'n',那么它不是's'。如果是's',那么它不是'n'。如果是其他任何内容,那么它不是's'而且不是'n'

也许您打算在那里使用and

答案 1 :(得分:2)

如果responsens,则会满足这两个条件。最好的方法是

if response in ('n', 's'):
    print ("it works")
else:
    print ("this works")