1. 程式人生 > >(轉)Python字典實現三級菜單

(轉)Python字典實現三級菜單

青島 退出 and spa 獲取值 body als 名稱 結束

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
技術分享

(轉)Python字典實現三級菜單