我正在制作一个快速的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
使用后或打印出来。它可能是显而易见的东西-.-
答案 0 :(得分:4)
表达式:
(response != 'n') or (response != 's')
对于任何字符串响应,将始终为True 。如果response
为'n'
,那么它不是's'
。如果是's'
,那么它不是'n'
。如果是其他任何内容,那么它不是's'
而且不是'n'
。
也许您打算在那里使用and
?
答案 1 :(得分:2)
如果response
为n
或s
,则会满足这两个条件。最好的方法是
if response in ('n', 's'):
print ("it works")
else:
print ("this works")