python-demo1 Python三级菜单依次获取(字典套字典)

# -*- coding = utf-8 -*-
# @time:2020/7/23 14:47
# Author:guoss

################################################
# Task Name: 三级菜单
# Description:打印省、市、县三级菜单
#              可随时返回上一级
#              可随时退出程序
#----------------------------------------------
################################################

zone = {
    '山东' : {
        '青岛' : ['四方','黄岛','崂山','李沧','城阳'],
        '济南' : ['历城','槐荫','高新','长青','章丘'],
        '烟台' : ['龙口','莱山','牟平','蓬莱','招远']
    },
    '江苏' : {
        '苏州' : ['沧浪','相城','平江','吴中','昆山'],
        '南京' : ['白下','秦淮','浦口','栖霞','江宁'],
        '无锡' : ['崇安','南长','北塘','锡山','江阴']
    },
    '浙江' : {
        '杭州' : ['西湖','江干','下城','上城','滨江'],
        '宁波' : ['海曙','江东','江北','镇海','余姚'],
        '温州' : ['鹿城','龙湾','乐清','瑞安','永嘉']
    },
    '安徽' : {
        '合肥' : ['蜀山','庐阳','包河','经开','新站'],
        '芜湖' : ['镜湖','鸠江','无为','三山','南陵'],
        '蚌埠' : ['蚌山','龙子湖','淮上','怀远','固镇']
    },
    '广东' : {
        '深圳' : ['罗湖','福田','南山','宝安','布吉'],
        '广州' : ['天河','珠海','越秀','白云','黄埔'],
        '东莞' : ['莞城','长安','虎门','万江','大朗']
    }
}

#以上字典分为三级分别是“省”、“市”、“县”

# #1.打印一级菜单“省
# print(zone.keys())    #打印结果:dict_keys(['山东', '江苏', '浙江', '安徽', '广东'])
# #将上面结果转换为list,方便进行遍历操作
# province = list(zone.keys())
# print(province)
#
# #2.根据一级菜单打印二级菜单
# for prov in zone.keys():
#     for city in zone.values():
#         print(f'{prov}:{city}')


provinces = list(zone.keys())
print('    ************\n游戏说明:查询指定省份的市和县\n操作说明:输入q退出程序,输入p返回上一次\n    ************')


while True:
    print("可供查询省份:", end=' ')
    for province in provinces:
        print(province, end=' ')
    chose_province = input("\n请输入您要查询的省份:")
    if chose_province in provinces:
        for province_no in range(len(provinces)):
            if chose_province == provinces[province_no]:
                #添加end = ' ' 目的是为了输出不换行,以空格隔开
                print(f"{chose_province}可供查询的城市有:",end=' ')
                citys = zone[chose_province].keys()
                for city in citys:
                    print(city,end=' ')

                while True:
                    chose_city = input("\n请输入您要查询的城市:")
                    if chose_city == 'p':
                        continue
                    elif chose_city == 'q':
                        #无论exit函数出现在程序中的何处,只要程序在执行过程中调用到exit()函数,程序立即终止运行。。
                        exit()
                    elif chose_city in citys:
                        print(f"{chose_city}下县城有:",end=' ')
                        counts = zone[chose_province][chose_city]
                        for city_no in range(len(counts)):
                            print(counts[city_no],end=' ')
                        break
                    else:
                        print(f'输入错误,请输入{chose_province}下的城市')
                        continue

    elif chose_province == 'p':
        continue
    elif chose_province == 'q':
        break
    else:
        print("输入信息错误,请重新输入")
        continue
    chose = input("\n一次查询完成,是否继续下一次[y/n]:")
    if chose == 'y'or chose == 'p':
        continue
    elif chose == 'n' or chose == 'q' :
        print('查询结束')
        break
    else:
        print('输入信息错误,请重新输入')

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值