Python练习----多级菜单
多级菜单要求:
1.三级菜单
2.可依次选择进入各子菜单
3.可以返回上一层
4.输入‘q’可以退出
脚本:
1 zone = { 2 '北京' : { 3 '朝阳' : ['太阳宫','芍药居'], 4 '丰台' : ['六里桥','大红门'], 5 '海淀' : ['中关村','大钟寺'] 6 }, 7 '保定' : { 8 '高碑店' : ['白马','市一中'], 9 '涿州' : ['三义宫','松林店'], 10 }, 11 '广东' : { 12 '深圳' : ['aa','bb'], 13 '东莞' : ['11','22'] 14 } 15 } 16 17 province_list = list(zone.keys()) 18 19 while True: 20 print(" 省 ".center(50,'*')) 21 for i in province_list: 22 print(province_list.index(i)+1,i) 23 pro_id = input("请输入省编号,或输入q(quit)退出:") 24 if pro_id.isdigit(): 25 pro_id = int(pro_id) 26 if pro_id > 0 and pro_id <= len(province_list): 27 pro_name = province_list[pro_id-1] 28 city_list = list(zone[pro_name].keys()) 29 while True: 30 print(" 市 ".center(50,'*')) 31 for v in city_list: 32 print(city_list.index(v)+1,v) 33 city_id = input("请输入市编号,或输入b(back)返回上级菜单,或输入q(quit)退出:") 34 if city_id.isdigit(): 35 city_id = int(city_id) 36 if city_id > 0 and city_id <= len(city_list): 37 city_name = city_list[city_id-1] 38 town_list = zone[pro_name][city_name] 39 while True: 40 print(" 县 ".center(50,'*')) 41 for j in town_list: 42 print(town_list.index(j)+1,j) 43 back_or_quit = input("输入b(back)返回上级菜单,或输入q(quit)退出:") 44 if back_or_quit == 'b': 45 break 46 elif back_or_quit == 'q': 47 exit() 48 else: 49 print("输入非法!") 50 else: 51 print("编号%d不存在。"%city_id) 52 elif city_id == 'b': 53 break 54 elif city_id == 'q': 55 exit() 56 else: 57 print("输入非法!") 58 else: 59 print("编号%d不存在。"%pro_id) 60 elif pro_id == 'q': 61 break 62 else: 63 print("输入非法!")
执行结果:
*********************** 省 ************************ 1 北京 2 保定 3 广东 请输入省编号,或输入q(quit)退出:1 *********************** 市 ************************ 1 朝阳 2 丰台 3 海淀 请输入市编号,或输入b(back)返回上级菜单,或输入q(quit)退出:b *********************** 省 ************************ 1 北京 2 保定 3 广东 请输入省编号,或输入q(quit)退出:q