zoukankan      html  css  js  c++  java
  • python3 练习题(多级菜单)

    '''
    多级菜单
    需求:
    1.现有省/市/县3级结构,要求程序启动后,允许用户可依次选择进入各子菜单
    2.可在任意一级菜单返回上一级
    3.可以在任意一级菜单退出程序
    所需新知识点: 列表/字典
    '''
    menu = {
        "山东": {
            "济南": {
                  "平阴": {},
                  "商河": {},
                  "莱芜": {}
             },
            "济宁": {
                  "金乡": {},
                  "微山": {},
                  "嘉祥": {}
            },
            "曲阜": {
                  "南辛": {},
                  "陵城": {},
                  "防山": {}
            }
        },
        "北京": {
            "海淀": {
                    "万寿路": {},
                    "永定路": {},
                    "中关村": {}
           },
            "昌平": {
                    "回龙观": {},
                    "南口": {},
                    "沙河": {}
            },
            "朝阳": {
                    "呼家楼": {},
                    "三里屯": {},
                    "双井": {}
            }
        },
        "上海": {
            "黄浦": {
                    "南京东路": {},
                    "外滩": {},
                    "瑞金二路": {}
            },
            "徐汇": {
                "湖南路": {},
                "天平路": {},
                "枫林路": {}
    
            },
            "长宁": {
                    "华阳路": {},
                    "新华路": {},
                    "江苏路": {}
            }
        },
    }
    
    current_menu = menu
    layers = []
    while True:
        for i in current_menu:
            print(i)
        choice = input(">: ").strip()
        if choice in current_menu:
            layers.append(current_menu)
            current_menu = current_menu[choice]
        elif choice.upper() == "B":
            if len(layers) == 0:
                print("已经到顶了")
                continue
            current_menu = layers.pop()
    
    ----------------------------------------------微调1------------------------------------
    
    current_menu = menu
    choices = []
    while True:
        for i in current_menu:
            print(i)
        choice = input(">: ").strip()
        if choice in current_menu:
            choices.append(choice)
            current_menu = current_menu[choice]
        elif choice.upper() == "B":
            current_menu = menu
            if len(choices) == 0:
                print("已经到顶了")
                continue
            choices.pop()
            for i in choices:
                current_menu = current_menu[i]
    '''
    比上面的代码多了最后两行,请大佬留言,哪个方式更好一些.
    '''
    
    ------------------------------------------微调2---------------------------------------
    
    current_menu = menu
    choices = []
    while True:
        for i in current_menu:
            print(i)
        print("q退出 b返回上一级")
        if len(choices) >= 1:
            choice = input("%s>: " % '>'.join(choices)).strip()
        else:
            choice = input(">: ").strip()
        if choice in current_menu:
            choices.append(choice)
            current_menu = current_menu[choice]
        elif choice.upper() == "B":
            current_menu = menu
            if len(choices) == 0:
                print("已经到顶了")
                continue
            choices.pop()
            for j in choices:
                current_menu = current_menu[j]
        elif choice.upper() == "B":
            break 
  • 相关阅读:
    2040 打开所有的灯
    1323 删数问题(加强版)
    1087 FBI树
    1030 求先序排列
    1743 矩阵Ⅲ
    svn更新时,出现不知道这样的主机的解决方案
    用jquery或js获取select标签中选中的option值及文本
    html页面中的button按钮会自动提交form表单的问题以及解决方案
    localStorage与sessionStorage的使用和区别
    命令行mvn打包
  • 原文地址:https://www.cnblogs.com/lilyxiaoyy/p/10681640.html
Copyright © 2011-2022 走看看