Python三級菜單的實例
更新時間:2017年09月13日 08:09:59 作者:python修煉手冊
下面小編就為大家?guī)硪黄狿ython三級菜單的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
要求:
打印省、市、縣三級菜單
可返回上一級
可隨時退出程序
版本1
# _author : Ahern Li # @_date : 2017/9/12 menu = { '浙江省':{ '杭州市':{ '余杭區(qū)':{'中泰':{},'臨平':{}}, '西湖區(qū)':{'西湖':{},'留下':{}} }, '溫州市':{ '蒼南縣':{'靈溪':{},'龍港':{}}, '瑞安縣':{'安陽':{},'錦湖':{}} } }, '廣東省':{ '廣州市':{ '越秀區(qū)':{'人民路':{},'北京路':{}}, '荔灣區(qū)':{'沙面':{},'龍津':{}} }, '珠海市':{ '香洲區(qū)':{'拱北':{},'吉大':{}}, '金灣區(qū)':{'紅旗鎮(zhèn)':{},'平沙鎮(zhèn)':{}} } } } # 返回標記 q_flag = True # 退出標記 Q_flag = True # 返回,退出標記出現(xiàn)False退出循環(huán) 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,返回 或 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 退出該層循環(huán),返回上層循環(huán) q_flag = False elif choice == 'Q': # 退出大循環(huán) Q_flag = False else: # 提示輸入不合法 print('輸入錯誤!') # 改回 q_flag 的值,實現(xiàn)只退出一層循環(huán) 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/12 menu = { '浙江省':{ '杭州市':{ '余杭區(qū)':{'中泰':{},'臨平':{}}, '西湖區(qū)':{'西湖':{},'留下':{}} }, '溫州市':{ '蒼南縣':{'靈溪':{},'龍港':{}}, '瑞安縣':{'安陽':{},'錦湖':{}} } }, '廣東省':{ '廣州市':{ '越秀區(qū)':{'人民路':{},'北京路':{}}, '荔灣區(qū)':{'沙面':{},'龍津':{}} }, '珠海市':{ '香洲區(qū)':{'拱北':{},'吉大':{}}, '金灣區(qū)':{'紅旗鎮(zhèn)':{},'平沙鎮(zhèn)':{}} } } } current_layer = menu # 實現(xiàn)動態(tài)循環(huán) 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() # 取出當前層父層 # 退出循環(huán) elif choice == 'Q': break else: print('輸入錯誤!')
以上這篇Python三級菜單的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python數(shù)據(jù)分析處理(三)--運動員信息的分組與聚合
這篇文章主要介紹了Python數(shù)據(jù)清洗與處理?運動員信息的分組與聚合,根據(jù)Python數(shù)據(jù)清洗與處理?的相關(guān)資料展開運動員信息的分組與聚合的文章內(nèi)容,需要的朋友可以參考一下2021-12-12Python模仿POST提交HTTP數(shù)據(jù)及使用Cookie值的方法
這篇文章主要介紹了Python模仿POST提交HTTP數(shù)據(jù)及使用Cookie值的方法,通過兩種不同的實現(xiàn)方法較為詳細的講述了HTTP數(shù)據(jù)通信及cookie的具體用法,需要的朋友可以參考下2014-11-11Python實現(xiàn)隨機森林回歸與各自變量重要性分析與排序
這篇文章主要為大家詳細介紹了在Python環(huán)境中,實現(xiàn)隨機森林(Random Forest,RF)回歸與各自變量重要性分析與排序的過程,感興趣的小伙伴可以了解一下2023-02-02教你利用PyTorch實現(xiàn)sin函數(shù)模擬
這篇文章主要給大家介紹了關(guān)于教你利用PyTorch實現(xiàn)sin函數(shù)模擬的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2022-01-01pandas的to_datetime時間轉(zhuǎn)換使用及學習心得
這篇文章主要給大家介紹了關(guān)于pandas的to_datetime時間轉(zhuǎn)換使用及學習心得的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用pandas具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-08-08