python编程:字典的典型应用:二级(多级)菜单,实现户籍省市的多层级选择

发布时间 2023-06-15 15:46:23作者: 布衣梦蝶1978

python编程:字典的典型应用:二级(多级)菜单,实现户籍省市的多层级选择

一、编程题目
现实生活中我们经常要用到二级菜单或者多级菜单,下面我们以一个信息系统中关于户籍省市的选择利用字典来实现一个二级菜单,要求以下面的内容来定义二级菜单:

广东省:广州市、珠海市、东莞市、惠州市、汕头市、湛江市、河源市、梅州市
湖南省:长沙市、株洲市、郴州市、湘潭市
湖北省:武汉市、鄂州市
四川省:成都市、都江堰市、乐山市
云南省:丽江市、大理市、西双版纳州
甘肃省:兰州市、天水市、武威市
陕西省:西安市、咸阳市、渭南市

实现该二级菜单的第一级省份的选择,选择省份后再根据该选择进行市的选择,最出你的选择结果。进入最后一层选择后,按住‘b’字符返回上一层,按‘q’字符程序。
以简单的三个省份选择为例,效果如下图所示:

广东省
湖南省
四川省
云南省
甘肃省
陕西省
请选择省份:>>广东省
  广州市
  珠海市
  东莞市
  惠州市
  汕头市
  湛江市
  河源市
  梅州市
请选择城市:>>广州市
你选择的城市是: 广东省 广州市
最后一层,按b返回>>:b

二、代码实现

1、定义数据字典,用于存储省市信息数据

infos = {'广东省':['广州市','珠海市','东莞市','惠州市','汕头市','湛江市','河源市','梅州市'],
         '湖南省':['长沙市','株洲市','郴州市','湘潭市'],
          '四川省':['成都市','都江堰市','乐山市'],
          '云南省':['丽江市','大理市','西双版纳州'],
          '甘肃省':['兰州市','天水市','武威市'],
          '陕西省':['西安市','咸阳市','渭南市']
        }

2、定义两个while循环,用于分别让用户选择省信息和市信息

running = True
while running:
    for key in infos.keys():
        print(key)
    province = input('请选择省份:>>')
 
    if province == 'q':
        running = False
        break
 
    citys = []
    for key,value in infos.items():
        if province == key:
            for v in infos[key]:
                print(' ',v)
                citys.append(v)
    if not citys:
        print('你选择的省份有误,请重新选择!')
        continue
 
    city_running = True
    while city_running:
        city = input('请选择城市:>>')
        if city in citys:
            print('你选择的城市是:',province,city)
        else:
            print('你选择的城市有误,请重新选择!')
            continue
 
        b = input('最后一层,按b返回>>:')
        if b == 'b':
            city_running = False
        elif b == 'q':
            city_running = False
            running = False