为了账号安全,请及时绑定邮箱和手机立即绑定

python实现三级菜单

标签:
Python

#要求:
打印省、市、县三级菜单
可返回上一级
可随时退出程序

#!/usr/bin/python
#_*_coding:utf-8_*_
map_menu = {
    '河北省':{
        '石家庄市':['长安区','桥西区','新华区','裕华区','井陉矿区','藁城区','鹿泉区','栾城区','赵县','平山县'],
        '沧州市':['泊头市','南皮市','任丘市','青县','新华区','运河区','高新区','渤海新区','黄骅','河间','献县'],
        '唐山市':['路南区','路北区','丰南区','开平区','丰润区','遵化市','迁安市','迁西县','玉田县']
    },
    '广东省':{
        '广州市':['荔湾区','越秀区','海珠区','天河区','白云区','黄埔区','番禺区','花都区','增城区','从化区'],
        '深圳市':['罗湖区','福田区','南山区','宝安区','龙岗区','盐田区','光明新区','深汕区','坪山区','龙华区'],
        '珠海市':['香洲区','斗门区','金湾区','拱北区']
    },
    '北京省':{
        '北京市':['东城区','西城区','朝阳区','海淀区','丰台区','昌平区','石景山区','大兴区','怀柔区','通州区','顺义区']
    },
    '辽宁省':{
        '沈阳市':['和平区','沈河区','大东区','皇姑区','铁西区','苏家屯区','东陵区','沈北新区','于洪区','康平县'],
        '大连市':['中山区','西岗区','沙河口区','甘井子区','旅顺口区','金州区','瓦房店市','庄河市','长海县'],
        '鞍山市':['铁东区','铁西区','立山区','千山区','海城市','台安县','岫岩满族自治县']
    },
    '湖南省':{
        '长沙市':['岳麓区','芙蓉区','天心区','开福区','雨花区','望城区','长沙县','浏阳市','宁乡市'],
        '株洲市':['天元区','荷塘区','芦淞区','石峰区','醴陵市','株洲县','炎陵县','茶陵县','攸县'],
        '湘潭市':['岳塘区','雨湖区','湘乡市','韶山市','湘潭县']
    }
}
# 打印省份列表
province_name_list = list(map_menu.keys())
while True:
    print("Province List".center(40, '-'))
    # 打印省份列表
    for name in province_name_list:
        print(province_name_list.index(name)+1,name)
    # 选择需要的省份
    province_id = input('请输入与省份对应的编号,输入q退出程序. >>: ').strip()
    # 选择省份序号的规则制定,不符合则告知输入对应的序号
    if province_id.isdigit():
        province_id = int(province_id)
        if province_id > 0 and province_id <= len(province_name_list):
            #根据省ID,获取对应省的名称
            province_name = province_name_list[province_id - 1]
            print(province_name)
            # 根据省名称,获取对应的市列表
            city_name_list = list(map_menu[province_name].keys())
            while True:
                print("City List".center(40, '-'))
                # 打印市列表
                for city_name in city_name_list:
                    print(city_name_list.index(city_name)+1,city_name)
                city_id = input('请输入与市对应的编号,输入b返回上级菜单,输入q退出程序! >>: ').strip()
                if city_id.isdigit():
                    city_id = int(city_id)
                    # 判断输入city_id的内容
                    if city_id > 0 and city_id <= len(city_name_list):
                        # 根据市ID,获取市的名称
                        city_name = city_name_list[city_id - 1]
                        print(city_name)
                        # 获取县(区)的列表
                        county_name_list = map_menu[province_name][city_name]
                        while True:
                            print('County List'.center(40,'-'))
                            # 打印县(区)列表
                            for county_name in county_name_list:
                                print(county_name_list.index(county_name)+1,county_name)
                            signal = input('输入b返回上一级菜单,输入q退出程序!>>: ').strip()
                            if signal == 'b':
                                break
                            elif signal == 'q':
                                exit()
                            else:
                                print('您输入的%s不存在,b返回上一级,q退出程序!' %signal)
                    else:
                        print('您输入的%s编号不存在,请输入与城市对应的编号!' %city_id)
                elif city_id == 'b':
                    break
                elif city_id == 'q':
                    exit()
        else:
            print('您输入的%s编号不存在,请输入与省对应的编号!' %province_id)
    elif province_id == 'q':
        exit()
    else:
        print('输入不合法,请重新输入!')

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消