Python车辆启动程序重复输出异常问题求助
问题排查与修复
你的程序问题出在**print("Car started...")的缩进位置错误**——它没有被包含在else分支内部,而是和外层的if started:判断处于同一层级,导致无论汽车是否已经启动,这行代码都会被执行。
修正后的代码
command = "" started = False while True: command = input("> ").lower() if command == "start": if started: print("Car is already started!") else: started = True print("Car started...") # 将这行缩进,放入else分支内 elif command == "stop": if not started: print("Car is already stopped!") else: started = False print("Car stopped.") elif command == "help": print(""" start - to start the car stop - to stop the car quit - to quit """) elif command == "quit": break else: print("Sorry I don't understand that")
错误原因说明
- 首次输入
start时,started为False,进入else分支,将started设为True,然后执行print("Car started..."),符合预期。 - 第二次输入
start时,started已经是True,进入内层if分支输出Car is already started!,但原代码中print("Car started...")在判断结构外,会被继续执行,导致重复输出。 - 将
print("Car started...")移入else分支后,只有当汽车从“未启动”切换到“启动”状态时才会执行这行输出,已经启动的场景下只会输出提示信息,符合预期逻辑。
内容的提问来源于stack exchange,提问作者ZCB
相关产品推荐
相关产品推荐

