三级菜单

三级菜单

作业需求

  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('您输入有误!')
上一篇:Python入门


下一篇:Latex调节目录间距\tableofcontents和调整页码