虽然 python 中的循环和 OR 函数没有给出预期结果 [重复]

While loops and OR function in python not giving expected results [duplicate]

提问人:Trevor Quinney 提问时间:10/6/2016 最后编辑:CavazTrevor Quinney 更新时间:10/6/2016 访问量:56

问:

非常基本的问题,但我是 Python 的新手,正在开发一个小型文本冒险游戏,以帮助我更好地理解 while 循环以及 if/else/elif。它运行良好,直到我在代码中引入了 while 循环。一开始,用户应该选择一扇门走进去,向右或向左,如果用户输入其他内容,它应该回到顶部并要求他们选择他们的门。它这样做是正确的,但如果你像你应该的那样向右或向左输入,它仍然会带你回去要求你选择你的门。

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
python-3.x while-loop 布尔逻辑

评论

0赞 Albert Rothman 10/6/2016
首先,你可以把你的 print 语句放在 input() 中。其次,在条件之后没有代码...由于您的循环条件为 True,因此循环将继续运行。您还没有告诉我们(或您的代码)当您选择“左”或“右”时您希望发生什么
0赞 Trevor Quinney 10/6/2016
这实际上解决了我的问题!在那之后我有代码,但认为它不够相关,无法在此处添加,问题是我没有缩进要包含在我的循环中的代码,所以它只是不断循环而不是继续,因为它不知道该继续做什么。在你这么说之前,我什至不认为这可能是一个问题。
0赞 Albert Rothman 10/6/2016
很高兴为您提供帮助,您可能已经注意到,您的问题已被标记为重复。如果您还没有,请访问网站导览

答:

2赞 cjhanks 10/6/2016 #1

你的意思是:

if not door in (door1, door2):

你所写的基本上是:

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

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