Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果回答无效,则重新启动if循环_Python_Python 3.x - Fatal编程技术网

Python 如果回答无效,则重新启动if循环

Python 如果回答无效,则重新启动if循环,python,python-3.x,Python,Python 3.x,我有以下代码,如果触发了else,我如何继续让他们再次输入而不是退出循环 尝试了一些真实的东西,但无法使其发挥作用 if awaken in ["a", "stand up"]: print("Holy...") elif awaken in ["b", "take a breath"]: print("Just more text holding") elif awaken in ["c", "go back to sleep"]: print("") else:

我有以下代码,如果触发了else,我如何继续让他们再次输入而不是退出循环

尝试了一些真实的东西,但无法使其发挥作用

if awaken in ["a", "stand up"]:
    print("Holy...")
elif awaken in ["b", "take a breath"]:
    print("Just more text holding")
elif awaken in ["c", "go back to sleep"]:
    print("")
else:
    print("I don't understand your answer... try again")

将其全部放入
while
循环中

while True:
    awaken = input("Enter command: ").strip()  # I presume that you are taking input from user
    if awaken in ["a", "stand up"]:
        print("Holy...")
        break
    elif awaken in ["b", "take a breath"]:
        print("Just more text holding")
        break
    elif awaken in ["c", "go back to sleep"]:
        print("")
        break
    else:
        print("I don't understand your answer... try again")
输出:

Enter command: x
I don't understand your answer... try again
Enter command: y
I don't understand your answer... try again
Enter command: a
Holy...
不要忘记使用
break


我不知道为什么你的循环一开始不起作用,但上面的循环应该能起作用。

可能重复感谢,是否需要.strip()?没有它似乎也行。我有一个if-else语句,我想在这个语句之前运行,但它完全跳过while-true循环,我如何解决这个问题?strip()删除输入周围的所有空白。我通常在使用input()时将其放入。至于另一个if-else条件,我需要更多的上下文。很高兴知道。关于其余部分,这基本上是我正在练习的基于文本的游戏的外壳,因此它将加载if-else语句,如果if-else语句输入的内容不是有效的选择,我需要一种重新启动if-else语句的方法。当我添加这个while-True:loop时,它跳过了我在这个游戏中的第一个if-else语句,直到这个循环被打破,然后它运行它,但我不希望它先运行这个。我最终是否需要为每个if/else执行真正的循环,或者是否有更简单的方法?我相信我发现了这个问题。缩进!我将整个游戏包装在一个main()函数中,因此没有缩进while True循环。一旦我这样做了,并且再次缩进if-else循环,它就工作了!