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