• Day1作业2:多层菜单查询


    流程图:

    code:

    #!/usr/bin/env python
    # encoding: utf-8
    # Auther:ccorz Mail:ccniubi@163.com Blog:http://www.cnblogs.com/ccorz/
    
    #定义3层字典与其中列表
    china_map={
        '华南':{
            '广东':{'广州':['阿里','老男孩'],'佛山':['阿里','老男孩'],'深圳':['阿里','老男孩'],'东莞':['阿里','老男孩']},
            '广西':{'南宁':['阿里','老男孩'],'柳州':['阿里','老男孩'],'桂林':['阿里','老男孩'],'北海':['阿里','老男孩']},
            '海南':{'三亚':['阿里','老男孩'],'海口':['阿里','老男孩'],'三沙':['阿里','老男孩'],'詹州':['阿里','老男孩']},
            '香港':{'屯门':['阿里','老男孩'],'湾仔':['阿里','老男孩'],'北角':['阿里','老男孩'],'西贡':['阿里','老男孩']},
            '澳门':{'花地玛堂区':['阿里','老男孩'],'圣安多尼堂':['阿里','老男孩'],'望德堂区':['阿里','老男孩'],'大堂区':['阿里','老男孩']},
        },
        '华东':{
            '江苏':{'南京':['阿里','老男孩'],'无锡':['阿里','老男孩'],'徐州':['阿里','老男孩'],'苏州':['阿里','老男孩'],'常州':['阿里','老男孩']},
            '浙江':{'杭州':['阿里','老男孩'],'温州':['阿里','老男孩'],'宁波':['阿里','老男孩'],'台州':['阿里','老男孩'],'舟山':['阿里','老男孩']},
            '安徽':{'合肥':['阿里','老男孩'],'芜湖':['阿里','老男孩'],'蚌埠':['阿里','老男孩'],'滁州':['阿里','老男孩'],'阜阳':['阿里','老男孩'],'宿州':['阿里','老男孩'],'六安':['阿里','老男孩'],'宣城':['阿里','老男孩']},
            '福建':{'福州':['阿里','老男孩'],'厦门':['阿里','老男孩'],'泉州':['阿里','老男孩'],'漳州':['阿里','老男孩'],'莆田':['阿里','老男孩'],'龙岩':['阿里','老男孩']},
            '江西':{'南昌':['阿里','老男孩'],'景德镇':['阿里','老男孩'],'萍乡':['阿里','老男孩'],'九江':['阿里','老男孩'],'赣州':['阿里','老男孩'],'宜春':['阿里','老男孩']},
            '山东':{'济南':['阿里','老男孩'],'泰安':['阿里','老男孩'],'德州':['阿里','老男孩'],'曲阜':['阿里','老男孩']},
            '上海':{'黄埔':['阿里','老男孩'],'徐汇':['阿里','老男孩'],'长宁':['阿里','老男孩'],'虹口':['阿里','老男孩']},
        },
        '华中':{
            '湖北':{'武汉':['阿里','老男孩'],'黄石':['阿里','老男孩'],'十堰':['阿里','老男孩'],'襄阳':['阿里','老男孩'],'宜昌':['阿里','老男孩'],'鄂州':['阿里','老男孩'],'荆州':['阿里','老男孩']},
            '湖南':{'长沙':['阿里','老男孩'],'株洲':['阿里','老男孩'],'邵阳':['阿里','老男孩'],'岳阳':['阿里','老男孩'],'郴州':['阿里','老男孩']},
            '河南':{'郑州':['阿里','老男孩'],'开封':['阿里','老男孩'],'洛阳':['阿里','老男孩'],'焦作':['阿里','老男孩'],'平顶山':['阿里','老男孩']},
        },
        '华北':{
            '北京':{'东城':['阿里','老男孩'],'西城':['阿里','老男孩'],'朝阳':['阿里','老男孩'],'海淀':['阿里','老男孩'],'石景山':['阿里','老男孩'],'大兴':['阿里','老男孩'],'丰台':['阿里','老男孩'],'昌平':['阿里','老男孩']},
            '山西':{'太原':['阿里','老男孩'],'吕梁':['阿里','老男孩'],'晋中':['阿里','老男孩'],'长治':['阿里','老男孩'],'大同':['阿里','老男孩'],'阳泉':['阿里','老男孩'],'晋城':['阿里','老男孩'],'朔州':['阿里','老男孩'],'忻州':['阿里','老男孩'],'临汾':['阿里','老男孩']},
            '河北':{'石家庄':['阿里','老男孩'],'邯郸':['阿里','老男孩'],'廊坊':['阿里','老男孩'],'保定':['阿里','老男孩'],'张家口':['阿里','老男孩'],'唐山':['阿里','老男孩'],'秦皇岛':['阿里','老男孩'],'沧州':['阿里','老男孩']},
            '天津':{'和平区':['阿里','老男孩'],'河东区':['阿里','老男孩'],'河北区':['阿里','老男孩'],'南开区':['阿里','老男孩'],'武清':['阿里','老男孩']},
            '内蒙':{'呼和浩特':['阿里','老男孩'],'鄂尔多斯':['阿里','老男孩'],'乌海':['阿里','老男孩'],'通辽':['阿里','老男孩'],'呼伦贝尔':['阿里','老男孩'],'乌兰浩特':['阿里','老男孩']},
        },
        '西南':{
            '四川':{'成都':['阿里','老男孩'],'自贡':['阿里','老男孩'],'攀枝花':['阿里','老男孩'],'乐山':['阿里','老男孩'],'遂宁':['阿里','老男孩']},
            '云南':{'昆明':['阿里','老男孩'],'曲靖':['阿里','老男孩'],'玉溪':['阿里','老男孩'],'丽江':['阿里','老男孩'],'曲靖':['阿里','老男孩']},
            '贵州':{'贵阳':['阿里','老男孩'],'六盘水':['阿里','老男孩'],'遵义':['阿里','老男孩'],'安顺':['阿里','老男孩'],'毕节':['阿里','老男孩'],'铜仁':['阿里','老男孩']},
            '重庆':{'万州':['阿里','老男孩'],'涪陵':['阿里','老男孩'],'渝中':['阿里','老男孩'],'大渡口':['阿里','老男孩']},
            '西藏':{'拉萨':['阿里','老男孩'],'那曲':['阿里','老男孩'],'山南':['阿里','老男孩'],'昌都':['阿里','老男孩'],'林芝':['阿里','老男孩'],'日喀则':['阿里','老男孩']},
        },
        '西北':{
            '宁夏':{'银川':['阿里','老男孩'],'石嘴山':['阿里','老男孩'],'吴忠市':['阿里','老男孩'],'固原市':['阿里','老男孩'],'中卫市':['阿里','老男孩']},
            '陕西':{'西安':['阿里','老男孩'],'铜川':['阿里','老男孩'],'宝鸡':['阿里','老男孩'],'咸阳':['阿里','老男孩'],'渭南':['阿里','老男孩'],'汉中':['阿里','老男孩'],'榆林':['阿里','老男孩']},
            '甘肃':{'兰州':['阿里','老男孩'],'天水':['阿里','老男孩'],'张掖':['阿里','老男孩'],'酒泉':['阿里','老男孩'],'嘉峪关':['阿里','老男孩'],'庆阳':['阿里','老男孩'],'陇南':['阿里','老男孩']},
            '新疆':{'乌鲁木齐':['阿里','老男孩'],'克拉玛依':['阿里','老男孩'],'哈密':['阿里','老男孩'],'库尔勒':['阿里','老男孩'],'昌吉':['阿里','老男孩'],'博尔塔拉':['阿里','老男孩']},
        },
        '东北':{
            '黑龙江':{'哈尔滨':['阿里','老男孩'],'齐齐哈尔':['阿里','老男孩'],'鸡西':['阿里','老男孩'],'牡丹江':['阿里','老男孩'],'大兴安岭地区':['阿里','老男孩'],'黑河':['阿里','老男孩']},
            '吉林':{'长春':['阿里','老男孩'],'延吉':['阿里','老男孩'],'四平':['阿里','老男孩'],'吉林':['阿里','老男孩'],'松原':['阿里','老男孩']},
            '辽宁':{'沈阳':['阿里','老男孩'],'葫芦岛':['阿里','老男孩'],'大连':['阿里','老男孩'],'鞍山':['阿里','老男孩'],'营口':['阿里','老男孩'],'辽阳':['阿里','老男孩'],'朝阳':['阿里','老男孩']},
        }
    }
    #设置区域列表为空
    area_list=[]
    #遍历字典,将字典的key添加入空的区域列表
    for i in china_map:
        area_list.append(i)
    #设置退出循环的flag
    break_flag=0
    #当flag为初始值进入循环
    while break_flag==0:
        #遍历并打印区域列表元素以及索引号
        for i in area_list:
            print(area_list.index(i),i)
        #用户交互,选择序列号或者退出
        area_num=input('33[1;32;m输入您要查询的大区序列号(输入"q"退出查询):33[0m')
        #判断输入是否为q
        if area_num.lower() == 'q':
            #改变循环flag的值
            break_flag=1
        #判断输入是否为数字
        elif area_num.isdigit():
            #数字大于等于元素数量
            if int(area_num) >= int(len(area_list)):
                print('输入的序列号无对应的区域地址,请重新输入...')
            #数字小于元素数量
            else:
                #设置区域字典
                area_map=china_map[area_list[int(area_num)]]
                #标识符为初始值的循环
                while break_flag==0:
                    #省市列表为空
                    province_list=[]
                    #遍历区域字典,并将区域字典的key加入省市列表
                    for i in area_map:
                        province_list.append(i)
                        #打印省市列表的所以好以及元素
                        print(province_list.index(i),i)
                    # print(province_list)
                    #用户交互,省市索引号,并高亮显示
                    province_num=input('33[1;32;m输入省的序列号(输入b返回上一层,输入q退出):33[0m')
                    #判断交互内容为b
                    if province_num.lower() == 'b':
                        #退出循环,返回上一层循环
                        break
                    #判断交互内容为q
                    elif province_num.lower() == 'q':
                        print('查询退出')
                        #改变标识符初始值
                        break_flag=1
                    #交互内容为数字时
                    elif province_num.isdigit():
                        #设置省市字典
                        province_map=area_map[province_list[int(province_num)]]
                        #交互内容转化为数字,判断大于等于省市列表元素数量
                        if int(province_num) >= len(province_list):
                            #回显,进入下一次循环
                            print('输入的序列号无对应的省份,请重新输入...')
                        #交互内容转化为数字,判断小于省市列表元素数量
                        else:
                            #标识符为初始值时,进入循环
                            while break_flag==0:
                                #设置城市列表为空
                                city_list=[]
                                #遍历省市字典,并将key添加入城市列表
                                for i in province_map:
                                    city_list.append(i)
                                    #打印城市列表的索引号以及元素
                                    print(city_list.index(i),i)
                                # print('citylist=========
    %s'%city_list)
                                #交互,选择城市对应的序列号
                                city_num=input('33[1;32;m想看各城市的最牛逼公司么?请输入相应的序列号(输入b返回上一层,输入q退出):33[0m')
                                #判断交互内容为b
                                if city_num.lower() == 'b':
                                    #退出循环,返回上一层循环
                                    break
                                #交互内容为q
                                elif city_num.lower() == 'q':
                                    print('退出..')
                                    #改变标识符初始值
                                    break_flag=1
                                #交互内容为数字
                                elif city_num.isdigit():
                                    #交互内容转化为数字,判断大于等于城市列表的元素
                                    if int(city_num) >= len(city_list):
                                        #回显,进入下一次循环
                                        print('序列号无对应的城市,请重新输入.......')
                                    else:
                                        #遍历省市字典中城市key对应的公司value(value type为列表),打印其中的值
                                        for i in province_map[city_list[int(city_num)]]:
                                            #打印列表中元素,并将相应城市添加在公司名称前面
                                            print('33[1;32;m%s%s33[0m'%(city_list[int(city_num)],i))
                                        #标识符为初始值,进入循环
                                        while break_flag==0:
                                            #查询完成,进入用户交互
                                            b_or_q=input('33[1;32;m输入b返回上一层查询,输入q退出:33[0m')
                                            #交互内容为b,退出循环,返回上一层循环
                                            if b_or_q.lower()=='b':
                                                break
                                            #交互内容为q,回显退出程序,并改变标识符的值
                                            elif b_or_q.lower()=='q':
                                                print('程序退出...')
                                                break_flag=1
                                            #交互内容为其他,回显并进入下一次循环
                                            else:
                                                print('输入错误,请重新输入:')
                                #交互内容为其他,回显并进入下一次循环
                                else:
                                    print('输入有误,请重新输入...')
                    #交互内容为其他,回显并进入下一次循环
                    else:
                        print('输入有误,请重新输入...')
        else:
            print('输入有误,请重新输入...')
    View Code
  • 相关阅读:
    Django Rest Framework --用户访问频率限制
    Django Rest Framework --权限控制
    Django Rest Framework --认证
    Django Rest Framework
    查找最大或最小的 N 个元素
    collections集合模块 [namedtuple,deque,*]
    Dream
    jQuery Ajax -附示例
    原生Ajax
    Python3 里面的线程池
  • 原文地址:https://www.cnblogs.com/ccorz/p/5481271.html
Copyright © 2020-2023  润新知