Python 使用';或';导致输出错误

Python 使用';或';导致输出错误,python,python-3.x,while-loop,Python,Python 3.x,While Loop,我正在尝试制作一个刽子手游戏,在while循环中使用“or”来检查用户的输入。没有'or'循环可以正常工作,但是当我添加或使用另一个条件时,输出总是false def Guess(): guess = input("Type 'guess' to guess a character or 'answer' to guess the answer:\n>") while guess != 'guess': guess = input("That is a

我正在尝试制作一个刽子手游戏,在while循环中使用“or”来检查用户的输入。没有'or'循环可以正常工作,但是当我添加或使用另一个条件时,输出总是false

def Guess():
guess = input("Type 'guess' to guess a character or 'answer' to guess the answer:\n>")
while guess != 'guess':
    guess = input("That is an invalid input. Please type 'guess' to guess a character or 'answer' to guess the answer:\n>")
此代码正常工作-如果输入“猜测”,循环结束

def Guess():
guess = input("Type 'guess' to guess a character or 'answer' to guess the answer:\n>")
while guess != 'guess' or guess != 'answer':
    guess = input("That is an invalid input. Please type 'guess' to guess a character or 'answer' to guess the answer:\n>")

当我添加这个时,无论我输入什么,循环都会一直运行。你知道哪里出了问题吗?

猜测总是不等于这些值中的至少一个,所以你需要
,而不是

while guess != 'guess' and guess != 'answer':
如果您认为这令人困惑或难以阅读,请使用以下命令将其改写为:

while not (guess == 'guess' or guess == 'answer'):
一种更简短、可读性更强的解决方案是在
中使用

while guess not in ['guess', 'answer']:

guess
始终不等于这些值中的至少一个,因此您需要
,而不是

while guess != 'guess' and guess != 'answer':
如果您认为这令人困惑或难以阅读,请使用以下命令将其改写为:

while not (guess == 'guess' or guess == 'answer'):
一种更简短、可读性更强的解决方案是在
中使用

while guess not in ['guess', 'answer']: