python 三级联动

  
china_map = {
  "华南" :{
   "广东" :[ "广州市" , "佛山市" , "深圳市" , "东莞市" ],
  
   "广西" :[ "南宁市" , "柳州市" , "桂林市" , "北海市" ],
  
  
   "海南" :[ "海口市" , "三亚市" , "三沙市" , "儋州市" ]
  
  },
  "华东" :{
   "上海" :[ "黄浦区" , "卢湾区" , "徐汇区" , "长宁区" , "普陀区" ],
  
   "安徽" :[ "合肥市" , "芜湖市" , "淮南市" , "马鞍山市" ],
  
   "江苏" :[ "南京市" , "无锡市" , "徐州市" , "常州市" , "苏州市" ]
  
  },
  "华北" :{
   "北京" :[ "东城区" , "西城区" , "朝阳区" , "丰台区" , "石景山区" , "海淀区" ],
  
   "山西" :[ "太原市" , "大同市" , "阳泉市" , "长治市" ],
  
   "河北" :[ "石家庄市" , "唐山市" , "秦皇岛市" , "邢台市" ]
  
  },
  "华中" :{
   "湖北" :[ "武汉市" , "黄石市" , "十堰市" , "十堰市" ],
  
   "河南" :[ "郑州市" , "开封市" , "洛阳市" , "平顶山市" ],
  
   "湖南" :[ "长沙市" , "株洲市" , "衡阳市" , "邵阳市" ]
  
  },
  "西南" :{
   "重庆" :[ "万州区" , "涪陵区" , "渝中区" , "大渡口区" ],
   "四川" :[ "成都市" , "自贡市" , "攀枝花市" , "德阳市" ],
   "贵州" :[ "贵阳市" , "六盘水市" , "遵义市" , "安顺市" ],
  
  
  },
  "特别行政区" :{
   "香港" :[ "屯门" , "弯仔" , "北角" , "西贡" ],
   "澳门" :[ "花地玛堂区" , "圣安多尼堂区" , "大堂区" , "望德堂区" ],
  
  },  
}
print ( "-------------------------------------------------" )
print ( "+            +" )
print ( "+            +" )
print ( "+   欢迎来到大中华地区查询系统地   +" )
print ( "+            +" )
print ( "+            +" )
print ( "-------------------------------------------------" )
print ( "大中华地区一级划分:" )
for i in china_map: #遍历字典的key,列出大中华地区的名字
  
  print (i)
print ( "-------------------------------------------------" )
jump_flag = False #用于跳出外循环
for i in range ( 3 ): #外循环,指定循环3次,3次外循环完了,就退出程序
  greater_china_name = input ( "请输入你要查看的大中华地区名字:" )
  if greater_china_name in china_map: #检查输入的地区是否在地图中,如果地区名字3次输入错误,程序退出
   gc_name = china_map[greater_china_name]
   province_name = gc_name.keys() #使用输入的信息作为key,取出省信息,存在字典中
   while True : #内循环,死循环,不指定循环次数,通过break或者flag跳出
    print ( "------------------包含的省名字二级:-----------------" ) #分隔线
    for i in province_name: #遍历列表,取出省名字,打印出来
     print (i)
    print ( "-------------------------------------------------" ) #分隔线
    sheng_name_input = input ( "请输入你要查看的省名字:" )
  
    if sheng_name_input in province_name: #判断输入的省名字是否在地区列表中
     shi_name = china_map[greater_china_name][sheng_name_input] #取出省中有哪些市,存在列表中
     print ( "--------------包含的城市名三级:-------------------" ) #分隔线
     for i in shi_name: #遍历列表,取出地区市名字,打印出来
      print (i)
     print ( "------------------------------------------------" ) #分隔线
  
    if sheng_name_input not in province_name: #如果输入的省名字不在在地区列表中
     print ( "输入的省名字不对,请重新输入" )
     continue #跳出当次迭代,开始下一次迭代循环,直到地市名字输入正确为止(不停的要求输入)
    back_or_quit = input ( "请问是否退出?按b:Back是返回上一级菜单;按q:Exit是退出整个程序" )
    #显示完地区市后,就要退出程序了,一个是全部退出,一个是返回上一级菜单
    if back_or_quit = = "q" :
     jump_flag = True #用于跳出外循环
     break #跳出while内循环
    if back_or_quit = = "b" :
     continue # 跳出当次迭代,开始下一次迭代循环,重新输入省处,返回上一步
    print ( "你输入的信息有误,请重新输入" )
   if jump_flag: #跳出外循环的条件满足
    break #跳出外循环
else : #上面的3次for循环正常执行完毕,else才会执行,如果是不正常退出(break),else不会执行
  print ( "3次输入错误,程序退出" )

你可能感兴趣的:(python 三级联动)