或运算符混淆python

或运算符混淆python,python,adventure,Python,Adventure,我正在做一个快速的zork游戏,但是我在使用“or”操作符时遇到了这个问题。我以为这很简单,但我不明白为什么这不起作用。现在如果你输入“n”,你应该得到“this works”,因为它等于字符串“n”。相反,它打印出“它有效”和“这个有效”,所以很明显我用了“或”错了 x=0 而x (response != 'n') or (response != 's') 对于任何字符串响应都将始终为True。如果响应是'n',则它不是's'。如果它是's',那么它就不是'n'。如果是别的,那么它就不是's

我正在做一个快速的zork游戏,但是我在使用“or”操作符时遇到了这个问题。我以为这很简单,但我不明白为什么这不起作用。现在如果你输入“n”,你应该得到“this works”,因为它等于字符串“n”。相反,它打印出“它有效”和“这个有效”,所以很明显我用了“或”错了

x=0
而x

(response != 'n') or (response != 's')
对于任何字符串响应都将始终为True。如果
响应
'n'
,则它不是
's'
。如果它是
's'
,那么它就不是
'n'
。如果是别的,那么它就不是
's'
,也不是
'n'

也许您想在那里使用

表达式:

(response != 'n') or (response != 's')
对于任何字符串响应都将始终为True。如果
响应
'n'
,则它不是
's'
。如果它是
's'
,那么它就不是
'n'
。如果是别的,那么它就不是
's'
,也不是
'n'


可能您打算在那里使用

如果
响应
n
s
,则这两个条件都将得到满足。最好的办法是

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

如果
响应
n
s
,则这两个条件都将满足。最好的办法是

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

@Jotin2——现在,让我们不要诉诸于点名。我敢肯定,我们大多数人一生中都被同样简单的错误困扰了好几个小时。@mgilson我完全同意:)@mgilson:不,我总是犯相反的错误,而且德摩根(de morgan)也犯了同样的错误,但只犯了一半,我的头撞在墙上试图调试它。:)@abarnert——10次中有9次,当我尝试去de morgan时,我意识到当我回过头来阅读代码时,我需要更加认真地思考。最后,除非我有一个很好的理由去做不同的事情,否则我写这篇文章的方式与我的表达方式最为相似。@mgilson:是的,但这里的英语是“如果它既不是n也不是s
,这比“如果它既不是n也不是s”更简单“,这就是我为什么要这么做的原因。然后我总是写
,如果不是在…`或者像那样愚蠢的东西…@Jotin2--现在,让我们不要诉诸于点名。我敢肯定,我们大多数人一生中都被同样简单的错误困扰了好几个小时。@mgilson我完全同意:)@mgilson:不,我总是犯相反的错误,而且德摩根(de morgan)也犯了同样的错误,但只犯了一半,我的头撞在墙上试图调试它。:)@abarnert——10次中有9次,当我尝试去de morgan时,我意识到当我回过头来阅读代码时,我需要更加认真地思考。最后,除非我有一个很好的理由去做不同的事情,否则我写这篇文章的方式与我的表达方式最为相似。@mgilson:是的,但这里的英语是“如果它既不是n也不是s
,这比“如果它既不是n也不是s”更简单“,这就是我为什么要这么做的原因。然后我总是写
if not response not in…`或者像这样愚蠢的东西…作为旁注,对于Zork风格的文本冒险游戏,每个房间都有一个函数(我只是在这里假设,但大多数新手都是这么做的…),每个函数都是一长串的
if
/
elif
语句,很快就会变得笨拙。您可能需要考虑将解析器从其他代码中分解出来,并使用一个真正的解析库,并将这些房间转换成数据而不是代码,等等。在类似这样的环境中构建一个冒险,首先看看它有多容易,然后尝试找出如何在Python中使它变得那么容易,这可能会有所帮助。作为补充说明,对于Zork风格的文本冒险游戏,每个房间都有一个函数(我在这里只是假设,但这是大多数新手都会做的…),其中每一条都是一长串的
if
/
elif
语句,像这样的语句很快就会变得笨拙。您可能需要考虑将解析器从其他代码中分解出来,并使用一个真正的解析库,并将这些房间转换成数据而不是代码,等等。在一些东西中构建一个冒险,比如首先看看它有多容易,然后尝试找出如何在Python中使它变得那么容易,可能会有所帮助。