我的 while True: 循环没有像第一组代码那样继续循环

My while True: loop is not continuing to loop like the first set of code

提问人:Virtx_x 提问时间:8/16/2023 更新时间:8/16/2023 访问量:50

问:

嘿,这里的 python 初学者,我正在开发一个小冒险游戏,我不知道如何使用我的循环。我的第一个是一段时间后的 True: 循环,并在用户输入是其他任何内容时继续循环代码。但是,当在第 20-34 行重复相同的循环时,循环似乎不再起作用,脚本就结束了。

``

冒险项目

导入时间

while True:
    print('A man approachs you with his sword drawn and an angry look spread across his face, what do     you do?')
    print('1. Run away')
    print('2. Punch the man')
    fightOrRun = input()

    if fightOrRun in {'2','2.'}:
        print('Man: "Your going to get it!"')
        break
     elif fightOrRun in {'1','1.'}:
         print('Man: "Where do you think your going!"')
         break
     else:
         print('Not a valid input!') 
         continue

 while True:   
     if fightOrRun in {'2','2.'}:
         print('1. Adios loser!')
        fightOrRun = input()
        break

    elif fightOrRun in {'1','1.'}:
        print('1. I dont know')
        print('2. Im sorry')
        fightOrRun = input()
        break

    else:
        print('Please enter a valid input!')
        continue
``

我尝试将后半部分添加到第一部分,而 True: 循环,但它只会导致后半部分的错误是“代码无法访问 pylance”

python-3.x while-loop

评论

1赞 Matthias 8/16/2023
示例代码中的缩进被弄乱了。如果它在你的真实代码中看起来像这样,我可以理解代码检查器会抱怨。运行程序时会发生什么?
0赞 Virtx_x 8/16/2023
我只是在这里搞砸了,在我的实际 VS 代码中很好

答:

0赞 yue zhang 8/16/2023 #1

变量 'fightOrRun' 未在第二个 while 循环中定义。 你可以尝试在这个循环的开头定义'fightOrRun',或者把它放出循环。

评论

0赞 Virtx_x 8/16/2023
如果我这样做,它会破坏一切
0赞 AlecBrooks 8/16/2023 #2

代码的后半部分无法访问的原因是,在第一个条件中,所有选项都会导致 a 或 .这意味着它之后的所有代码都无法访问。breakcontinue

我怀疑删除这些语句会给你带来你想要的结果。break

您可以在控制流的 python 文档中阅读有关它的更多信息

评论

0赞 Virtx_x 8/16/2023
在实施您的建议后,刚才的代码永远不会结束。
0赞 AlecBrooks 8/17/2023
目前尚不清楚您提供的代码的预期行为是什么。如果您希望每个循环都是独立的,那么您需要确保它们缩进在同一级别上,以便第二个循环不包含在第一个循环中。