要求:
打印省、市、縣三級菜單
可返回上一級
可隨時退出程序
版本1
# _author : Ahern Li# @_date : 2017/9/12menu = { '浙江省':{ '杭州市':{ '余杭區':{'中泰':{},'臨平':{}}, '西湖區':{'西湖':{},'留下':{}} }, '溫州市':{ '蒼南縣':{'靈溪':{},'龍港':{}}, '瑞安縣':{'安陽':{},'錦湖':{}} } }, '廣東省':{ '廣州市':{ '越秀區':{'人民路':{},'北京路':{}}, '荔灣區':{'沙面':{},'龍津':{}} }, '珠海市':{ '香洲區':{'拱北':{},'吉大':{}}, '金灣區':{'紅旗鎮':{},'平沙鎮':{}} } } }# 返回標記q_flag = True# 退出標記Q_flag = True# 返回,退出標記出現False退出循環while q_flag and Q_flag: # 遍歷打印省份 for i in menu: print(i) province = input('請輸入要查找的省份(Q,退出):').strip() if province in menu: while q_flag and Q_flag: for i in menu[province]: print(i) city = input('請輸入要查找的市(q,返回 或 Q,退出):').strip() if city in menu[province]: while q_flag and Q_flag: for i in menu[province][city]: print(i) county = input('請輸入要查找的區或縣(q,返回 或 Q,退出):').strip() if county in menu[province][city]: while q_flag and Q_flag: for i in menu[province][city][county]: print(i) # 提示最后一頁,輸入格式 choice = input('最后一頁! q,返回 或 Q,退出:').strip() if choice == 'q': # 配合 else: q_flag = True 退出該層循環,返回上層循環 q_flag = False elif choice == 'Q': # 退出大循環 Q_flag = False else: # 提示輸入不合法 print('輸入錯誤!') # 改回 q_flag 的值,實現只退出一層循環 else: q_flag = True elif county == 'q': q_flag = False elif county == 'Q': Q_flag = False else: print('輸入錯誤!') else: q_flag = True elif city == 'q': q_flag = False elif city == 'Q': Q_flag = False else: print('輸入錯誤!') else: q_flag = True elif province == 'Q': Q_flag = False else: print('輸入錯誤!')版本2
# _author : Ahern Li# @_date : 2017/9/12menu = { '浙江省':{ '杭州市':{ '余杭區':{'中泰':{},'臨平':{}}, '西湖區':{'西湖':{},'留下':{}} }, '溫州市':{ '蒼南縣':{'靈溪':{},'龍港':{}}, '瑞安縣':{'安陽':{},'錦湖':{}} } }, '廣東省':{ '廣州市':{ '越秀區':{'人民路':{},'北京路':{}}, '荔灣區':{'沙面':{},'龍津':{}} }, '珠海市':{ '香洲區':{'拱北':{},'吉大':{}}, '金灣區':{'紅旗鎮':{},'平沙鎮':{}} } } }current_layer = menu # 實現動態循環parent_layer = [] # 保留所有父層,最后一個元素永遠為父層while True: print() # 僅為了打印美觀 for i in current_layer: # 遍歷打印地址 print(i) choice = input('請在下方輸入查詢地址/n>>>:').strip() if choice in current_layer: if current_layer[choice]: # 判斷是否為末層 parent_layer.append(current_layer) # 進入子層前,添加當前層作為父層 current_layer = current_layer[choice] # 修改子層 else: print('當前是最后一頁') elif choice == '': continue elif choice == 'q': # 返回上層 if parent_layer: # 判斷 parent_layer 是否為空 current_layer = parent_layer.pop() # 取出當前層父層 # 退出循環 elif choice == 'Q': break else: print('輸入錯誤!')以上這篇Python三級菜單的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答