Python 3(PyCharm)嵌套菜单创建问题:二级菜单无法正常显示
解决Python嵌套菜单问题
你的代码有几个关键问题导致二级菜单无法正常工作:
input()默认返回字符串类型,你直接拿它和整数1做比较,永远不会匹配,所以Laptops的子菜单根本不会触发- 流程逻辑混乱,选完设备后立刻又调用主菜单,没有给用户选择子菜单的机会
- 没实现iPhones的子菜单,也没有退出机制
下面是修正后的代码,实现了嵌套菜单的核心功能,还加了输入异常处理和循环操作:
def main_menu(): print("\n主菜单") print("[1] Laptops") print("[2] iPhones") print("[0] 退出") def laptop_submenu(): print("\nLaptops子菜单") print("[1] S5750") print("[2] S5577") print("[3] S5563") print("[4] S5744") print("[5] S5765") print("[6] S5944") print("[7] S5507") print("[8] S5509") print("[0] 返回主菜单") def iphone_submenu(): print("\niPhones子菜单") print("[1] iPhone 15") print("[2] iPhone 14") print("[3] iPhone 13") print("[0] 返回主菜单") while True: main_menu() try: option = int(input("请选择设备类型: ")) if option == 0: print("退出程序") break elif option == 1: while True: laptop_submenu() sub_option = int(input("请选择具体型号: ")) if sub_option == 0: break elif 1 <= sub_option <=8: model_list = ["S5750", "S5577", "S5563", "S5744", "S5765", "S5944", "S5507", "S5509"] print(f"你选择了Laptop型号: {model_list[sub_option-1]}") else: print("无效选项,请重新输入") elif option == 2: while True: iphone_submenu() sub_option = int(input("请选择具体型号: ")) if sub_option == 0: break elif 1 <= sub_option <=3: model_list = ["iPhone 15", "iPhone 14", "iPhone 13"] print(f"你选择了iPhone型号: {model_list[sub_option-1]}") else: print("无效选项,请重新输入") else: print("无效选项,请重新输入") except ValueError: print("请输入有效的数字")
代码说明:
- 把主菜单和两个子菜单分别封装成函数,结构更清晰
- 用外层循环实现主菜单的重复调用,用户可以多次选择直到退出
- 每个子菜单也用循环,选完型号后可以返回主菜单继续操作
- 加入
try-except处理用户输入非数字的情况,避免程序崩溃 - 对每个选项的输入范围做了判断,提示无效输入
内容的提问来源于stack exchange,提问作者DYER101
相关产品推荐
相关产品推荐

