Python字典实现三级菜单
原文:https://www.cnblogs.com/pyramid1001/p/5803294.html
1 ################################################ 2 # Task Name: 三级菜单 # 3 # Description:打印省、市、县三级菜单 # 4 # 可返回上一级 # 5 # 可随时退出程序 # 6 #----------------------------------------------# 7 # Author:Oliver Lee # 8 ################################################ 9 10 zone = { 11 ‘山东‘ : { 12 ‘青岛‘ : [‘四方‘,‘黄岛‘,‘崂山‘,‘李沧‘,‘城阳‘], 13 ‘济南‘ : [‘历城‘,‘槐荫‘,‘高新‘,‘长青‘,‘章丘‘], 14 ‘烟台‘ : [‘龙口‘,‘莱山‘,‘牟平‘,‘蓬莱‘,‘招远‘] 15 }, 16 ‘江苏‘ : { 17 ‘苏州‘ : [‘沧浪‘,‘相城‘,‘平江‘,‘吴中‘,‘昆山‘], 18 ‘南京‘ : [‘白下‘,‘秦淮‘,‘浦口‘,‘栖霞‘,‘江宁‘], 19 ‘无锡‘ : [‘崇安‘,‘南长‘,‘北塘‘,‘锡山‘,‘江阴‘] 20 }, 21 ‘浙江‘ : { 22 ‘杭州‘ : [‘西湖‘,‘江干‘,‘下城‘,‘上城‘,‘滨江‘], 23 ‘宁波‘ : [‘海曙‘,‘江东‘,‘江北‘,‘镇海‘,‘余姚‘], 24 ‘温州‘ : [‘鹿城‘,‘龙湾‘,‘乐清‘,‘瑞安‘,‘永嘉‘] 25 }, 26 ‘安徽‘ : { 27 ‘合肥‘ : [‘蜀山‘,‘庐阳‘,‘包河‘,‘经开‘,‘新站‘], 28 ‘芜湖‘ : [‘镜湖‘,‘鸠江‘,‘无为‘,‘三山‘,‘南陵‘], 29 ‘蚌埠‘ : [‘蚌山‘,‘龙子湖‘,‘淮上‘,‘怀远‘,‘固镇‘] 30 }, 31 ‘广东‘ : { 32 ‘深圳‘ : [‘罗湖‘,‘福田‘,‘南山‘,‘宝安‘,‘布吉‘], 33 ‘广州‘ : [‘天河‘,‘珠海‘,‘越秀‘,‘白云‘,‘黄埔‘], 34 ‘东莞‘ : [‘莞城‘,‘长安‘,‘虎门‘,‘万江‘,‘大朗‘] 35 } 36 } 37 province_list = list(zone.keys()) #省列表 38 # flag = False 39 # flag1 = False 40 while True: 41 print(" 省 ".center(50,‘*‘)) 42 for i in province_list: 43 print(province_list.index(i)+1,i) #打印省列表 44 pro_id = input("请输入省编号,或输入q(quit)退出:") #省ID 45 if pro_id.isdigit(): 46 pro_id = int(pro_id) 47 if pro_id > 0 and pro_id <= len(province_list): 48 pro_name = province_list[pro_id-1] #根据省ID获取省名称 49 city_list = list(zone[pro_name].keys()) #根据省名称获取对应的值,从新字典中获取key,即市列表 50 while True: 51 print(" 市 ".center(50,‘*‘)) 52 for v in city_list: 53 print(city_list.index(v)+1,v) #打印市列表 54 city_id = input("请输入市编号,或输入b(back)返回上级菜单,或输入q(quit)退出:") 55 if city_id.isdigit(): 56 city_id = int(city_id) 57 if city_id > 0 and city_id <= len(city_list): 58 city_name = city_list[city_id-1] #根据市ID获取市名称 59 town_list = zone[pro_name][city_name] #根据省名称获取对应的值,从新字典中获取值,即县列表 60 while True: 61 print(" 县 ".center(50,‘*‘)) 62 for j in town_list: 63 print(town_list.index(j)+1,j) 64 back_or_quit = input("输入b(back)返回上级菜单,或输入q(quit)退出:") 65 if back_or_quit == ‘b‘: 66 break #终止此层while循环,跳转到上一层While。 67 elif back_or_quit == ‘q‘: 68 # flag1 = True 69 # break #根据标志位结束程序。 70 exit() 71 else: 72 print("输入非法!") 73 else: 74 print("编号%d不存在。"%city_id) 75 elif city_id == ‘b‘: 76 break 77 elif city_id == ‘q‘: 78 # flag = True 79 # break 80 exit() 81 else: 82 print("输入非法!") 83 # if flag1: 84 # break 85 else: 86 print("编号%d不存在。"%pro_id) 87 elif pro_id == ‘q‘: 88 break 89 else: 90 print("输入非法!") 91 # if flag or flag1: 92 # break
时间: 2024-11-08 23:00:08