You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 01:22:18