zoukankan      html  css  js  c++  java
  • 三级菜单

    三级菜单

    作业需求

    1. 可以一层一层的进入到所有层 ;
    2. 可以在每层返回上一层 ;
    3. 可以在任意层回退上一层或退出;
    # Administrator 2019/6/12 13:41
    menu = {
        '北京':{
            '朝阳':{
                '国贸':{},
                    'CICC':{},
                    'HP':{},
                    '渣打银行':{},
                    'CCTV':{},
                },
                '望京':{
                    '陌陌':{},
                    '奔驰':{},
                    '360':{},
                },
                '三里屯':{
                    '优衣库':{},
                    'apple':{},
            },
            '昌平':{
                '沙河':{
                    '老男孩':{},
                    '阿泰包子':{},
                },
                '天通苑':{
                    '链家':{},
                    '我爱我家':{},
                },
                '回龙观':{},
            },
            '海淀':{
                '五道口':{
                    '谷歌':{},
                    '网易':{},
                    'sohu':{},
                    '快手':{},
                },
                '中关村':{
                    'youku':{},
                    'Iqiyi':{},
                    '汽车之家':{},
                    '新东方':{},
                    'QQ':{},
                },
     
            },
        },
        '上海':{
            '浦东':{
                '陆家嘴':{
                    'CICC':{},
                    '高盛':{},
                    '摩根':{},
                },
            },
            '闵行':{},
            '静安':{},
        },
        '山东':{
            '济南':{},
            '德州':{
                '乐陵':{
                    '丁务镇':{},
                    '城区':{},
                },
                '平原':{},
            },
            '青岛':{},
        },
    }
     
    floor = menu    #定义当前层为menu,实现动态循环;
    empty_list = []      #定义一个空列表,保存所有父级,最后一个元素永远都是父级;
    while True:     #while True 语句中一定要有结束该循环的break语句,否则会一直循环下去;
        for key in floor:
            print(key)      #打印菜单内容
        #让用户选择输入,strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列;
        choice = input("请输入地址>>>【返回/b,退出/q】:").strip()
        if choice == 'q':   #判断如果用户输入q,便break跳出循环;
            break
        #判断用户如果输入的字符长度如果为0,便跳出本次循环;
        if len(choice) == 0 :   #len() 方法返回对象(字符、列表、元组等)长度或项目个数。
            continue
        if choice in floor:     #如果用户输入的是菜单里的内容;
            #在进入下一层之前,把当前层追加到列表中;
            #下一次循环时,如果用户输入b,就可以直接取列表的最后一个值出来;
            empty_list.append(floor) #append() 方法用于在列表末尾添加新的对象;
            floor = floor[choice]   #改成下一层;
        elif choice == 'b':         #如果用户输入b;
            if empty_list:          #判断列表是否为空;
                #pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
                floor = empty_list.pop()    #取出列表最后一个值,因为他就是当前层的父级;
        else:
            print('您输入有误!')
    
  • 相关阅读:
    Docker可视化管理工具Portainer
    Spring Cloud,Docker书籍资源、优秀博文等记录
    Grafana部署监控docker服务
    Grafana+Prometheus通过node_exporter监控Linux服务器信息
    Prometheus+Grafana+kafka_exporter监控kafka
    k8s gpu 资源设置
    mysql 塞数据
    idea 插件
    ubuntu 升级内核
    清华镜像站安装docker
  • 原文地址:https://www.cnblogs.com/jiangchunsheng/p/13892284.html
Copyright © 2011-2022 走看看