【发布时间】:2021-08-07 09:25:03
【问题描述】:
我正在创建一个汽车游戏。 只有“开始”、“停止”、“退出”命令。 无法识别任何其他命令。
command = ""
while command != "quit":
command = input("Command: ")
if command == "start":
print("Car ready to go")
elif command == "stop":
print("Car stopped")
else:
print("I don't understand that")
else:
print("Game exited")
除了“退出”之外,所有命令都可以正常工作。使用 while 循环,它会导致执行 else 语句并打印:
I don't understand that
Game exited
command = "quit" 应该呈现 while 条件 False 并因此向前跳过以仅执行外部 else 语句。为什么即使没有满足while条件,它也会执行两个else语句?
【问题讨论】:
-
您的解释是错误的。你进入循环,你要求用户输入,你检查它是否与某个值。 Quit 命中 else 块然后它再次循环 et 退出循环并命中 while else。你的程序完全按照你的要求去做。
-
另请阅读
while .. else结构。它不是你想的那样。在这种情况下,您不需要第二个else,因为在while循环中没有任何break语句。 -
哦,我知道我哪里出错了。我假设 while 条件是在整个 while 块中“带来”的,所以我错误地将内部 else 语句条件解释为:command != "start" and command != "stop" and command != "quit"。那么准确地说,Python 的逻辑是一行一行的流动?
-
在您的条件逻辑上添加一个中断,它将控制超出循环
标签: python while-loop