Python新手求助:输入'e'终止所有循环,输入'm'返回菜单的实现问题
问题解决:输入'm'无法返回菜单的问题
你的代码核心问题在于最外层while True循环末尾有一个无条件的break语句——不管你输入'm'还是'e',执行完选择重复操作的循环后,都会触发这个break,直接退出最外层循环,导致输入'm'也会退出程序。
修改方案
- 移除最外层循环末尾的无条件
break - 在选择重复操作的循环结束后,根据用户输入的
repeat值决定是否终止最外层循环:- 输入'm':回到最外层循环开头,重新显示菜单
- 输入'e':终止最外层循环,退出程序
修改后的完整代码
def A(): print("a") def B(): print("B") def Menu(): print("Menu") print("1.A") print("2.B") while True: Menu() # 选择功能的循环 while True: option = input("Choose a or b: ") if option == 'a': A() break elif option == 'b': B() break else: print("Choose 'a' or 'b' only") # 选择是否返回菜单或退出的循环 while True: repeat = input("Enter 'm' to return menu, 'e' to exit: ") if repeat not in ['m', 'e']: print("Choose 'm' or 'e' only") continue break # 根据输入决定是否退出程序 if repeat == 'e': break
逻辑说明
- 最外层
while True循环负责重复执行「显示菜单→选择功能→选择后续操作」的流程 - 功能选择循环确保用户输入有效的'a'或'b'后,才进入下一步
- 重复操作循环确保用户输入有效的'm'或'e'后,再判断后续走向:输入'e'则退出整个程序,输入'm'则回到菜单重新开始流程
内容的提问来源于stack exchange,提问作者anonymous
相关产品推荐
相关产品推荐

