而python中的循环和或函数没有给出预期的结果

而python中的循环和或函数没有给出预期的结果,python,python-3.x,while-loop,boolean-logic,Python,Python 3.x,While Loop,Boolean Logic,这是一个非常基本的问题,但我是Python新手,正在开发一个小的文本冒险游戏,以帮助我更好地理解while循环以及if/else/elif。在我将while循环引入代码之前,它工作得很好。在开始时,用户应该选择一扇门,向右或向左,如果用户键入其他内容,则应该返回顶部并要求他们选择自己的门。这样做是正确的,但如果你像你应该的那样输入right或left,它仍然会让你返回,让你选择你的门 door1 = 'right' door2 = 'left' print("Please type the na

这是一个非常基本的问题,但我是Python新手,正在开发一个小的文本冒险游戏,以帮助我更好地理解while循环以及if/else/elif。在我将while循环引入代码之前,它工作得很好。在开始时,用户应该选择一扇门,向右或向左,如果用户键入其他内容,则应该返回顶部并要求他们选择自己的门。这样做是正确的,但如果你像你应该的那样输入right或left,它仍然会让你返回,让你选择你的门

door1 = 'right'
door2 = 'left'
print("Please type the name you'd like to use")
myName = input()
print("Hello " + myName)
print("Would you like to go through the door on the left or the door on the right?")
while True:
    print("Please type left or right to indicate the door you choose")
    door = input()
    if door != door1 or door2:
        continue
你可能是说:

if not door in (door1, door2):
你所写的基本上是:

if (door != door1) or bool(door2):
并且
bool(door2)==True
,除非
door2
是空字符串。

您可能的意思是:

if not door in (door1, door2):
你所写的基本上是:

if (door != door1) or bool(door2):

bool(door2)==True
除非
door2
是空字符串。

首先,您可以将打印语句放入input()中。第二,在条件之后没有代码…因为你的循环条件是真的,循环将继续运行…你还没有告诉我们(或你的代码)当你选择“左”或“右”时你希望发生什么,这实际上解决了我的问题!在那之后我有了代码,但我认为它没有足够的相关性添加到这里,问题是我没有缩进代码以包含在我的循环中,所以它只是继续循环,而不是继续,因为它不知道要继续什么。直到你这么说,我才认为这可能是一个问题。很高兴能提供帮助,正如你可能已经注意到的,你的问题被标记为重复。如果还没有,请首先访问该站点,您可以将打印语句放入input()中。第二,在条件之后没有代码…因为你的循环条件是真的,循环将继续运行…你还没有告诉我们(或你的代码)当你选择“左”或“右”时你希望发生什么,这实际上解决了我的问题!在那之后我有了代码,但我认为它没有足够的相关性添加到这里,问题是我没有缩进代码以包含在我的循环中,所以它只是继续循环,而不是继续,因为它不知道要继续什么。直到你这么说,我才认为这可能是一个问题。很高兴能提供帮助,正如你可能已经注意到的,你的问题被标记为重复。如果还没有,请访问该网站