Python 如果回答无效,则重新启动if循环
我有以下代码,如果触发了else,我如何继续让他们再次输入而不是退出循环 尝试了一些真实的东西,但无法使其发挥作用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:
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循环,它就工作了!