Python三級(jí)菜單的實(shí)例
要求:
打印省、市、縣三級(jí)菜單
可返回上一級(jí)
可隨時(shí)退出程序
版本1
# _author : Ahern Li # @_date : 2017/9/12 menu = { '浙江省':{ '杭州市':{ '余杭區(qū)':{'中泰':{},'臨平':{}}, '西湖區(qū)':{'西湖':{},'留下':{}} }, '溫州市':{ '蒼南縣':{'靈溪':{},'龍港':{}}, '瑞安縣':{'安陽(yáng)':{},'錦湖':{}} } }, '廣東省':{ '廣州市':{ '越秀區(qū)':{'人民路':{},'北京路':{}}, '荔灣區(qū)':{'沙面':{},'龍津':{}} }, '珠海市':{ '香洲區(qū)':{'拱北':{},'吉大':{}}, '金灣區(qū)':{'紅旗鎮(zhèn)':{},'平沙鎮(zhèn)':{}} } } } # 返回標(biāo)記 q_flag = True # 退出標(biāo)記 Q_flag = True # 返回,退出標(biāo)記出現(xiàn)False退出循環(huán) while q_flag and Q_flag: # 遍歷打印省份 for i in menu: print(i) province = input('請(qǐng)輸入要查找的省份(Q,退出):').strip() if province in menu: while q_flag and Q_flag: for i in menu[province]: print(i) city = input('請(qǐng)輸入要查找的市(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ǐng)輸入要查找的區(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) # 提示最后一頁(yè),輸入格式 choice = input('最后一頁(yè)! 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('輸入錯(cuò)誤!') # 改回 q_flag 的值,實(shí)現(xiàn)只退出一層循環(huán) else: q_flag = True elif county == 'q': q_flag = False elif county == 'Q': Q_flag = False else: print('輸入錯(cuò)誤!') else: q_flag = True elif city == 'q': q_flag = False elif city == 'Q': Q_flag = False else: print('輸入錯(cuò)誤!') else: q_flag = True elif province == 'Q': Q_flag = False else: print('輸入錯(cuò)誤!')
版本2
# _author : Ahern Li # @_date : 2017/9/12 menu = { '浙江省':{ '杭州市':{ '余杭區(qū)':{'中泰':{},'臨平':{}}, '西湖區(qū)':{'西湖':{},'留下':{}} }, '溫州市':{ '蒼南縣':{'靈溪':{},'龍港':{}}, '瑞安縣':{'安陽(yáng)':{},'錦湖':{}} } }, '廣東省':{ '廣州市':{ '越秀區(qū)':{'人民路':{},'北京路':{}}, '荔灣區(qū)':{'沙面':{},'龍津':{}} }, '珠海市':{ '香洲區(qū)':{'拱北':{},'吉大':{}}, '金灣區(qū)':{'紅旗鎮(zhèn)':{},'平沙鎮(zhèn)':{}} } } } current_layer = menu # 實(shí)現(xiàn)動(dòng)態(tài)循環(huán) parent_layer = [] # 保留所有父層,最后一個(gè)元素永遠(yuǎn)為父層 while True: print() # 僅為了打印美觀 for i in current_layer: # 遍歷打印地址 print(i) choice = input('請(qǐng)?jiān)谙路捷斎氩樵兊刂穃n>>>:').strip() if choice in current_layer: if current_layer[choice]: # 判斷是否為末層 parent_layer.append(current_layer) # 進(jìn)入子層前,添加當(dāng)前層作為父層 current_layer = current_layer[choice] # 修改子層 else: print('當(dāng)前是最后一頁(yè)') elif choice == '': continue elif choice == 'q': # 返回上層 if parent_layer: # 判斷 parent_layer 是否為空 current_layer = parent_layer.pop() # 取出當(dāng)前層父層 # 退出循環(huán) elif choice == 'Q': break else: print('輸入錯(cuò)誤!')
以上這篇Python三級(jí)菜單的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python數(shù)據(jù)分析處理(三)--運(yùn)動(dòng)員信息的分組與聚合
這篇文章主要介紹了Python數(shù)據(jù)清洗與處理?運(yùn)動(dòng)員信息的分組與聚合,根據(jù)Python數(shù)據(jù)清洗與處理?的相關(guān)資料展開運(yùn)動(dòng)員信息的分組與聚合的文章內(nèi)容,需要的朋友可以參考一下2021-12-12基于python和pygame庫(kù)實(shí)現(xiàn)刮刮樂(lè)游戲
這篇文章主要介紹了如何基于python和pygame庫(kù)實(shí)現(xiàn)刮刮樂(lè)游戲,文中通過(guò)代碼示例和圖文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-03-03matplotlib savefig 保存圖片大小的實(shí)例
今天小編就為大家分享一篇matplotlib savefig 保存圖片大小的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Python模仿POST提交HTTP數(shù)據(jù)及使用Cookie值的方法
這篇文章主要介紹了Python模仿POST提交HTTP數(shù)據(jù)及使用Cookie值的方法,通過(guò)兩種不同的實(shí)現(xiàn)方法較為詳細(xì)的講述了HTTP數(shù)據(jù)通信及cookie的具體用法,需要的朋友可以參考下2014-11-11Python實(shí)現(xiàn)隨機(jī)森林回歸與各自變量重要性分析與排序
這篇文章主要為大家詳細(xì)介紹了在Python環(huán)境中,實(shí)現(xiàn)隨機(jī)森林(Random Forest,RF)回歸與各自變量重要性分析與排序的過(guò)程,感興趣的小伙伴可以了解一下2023-02-02教你利用PyTorch實(shí)現(xiàn)sin函數(shù)模擬
這篇文章主要給大家介紹了關(guān)于教你利用PyTorch實(shí)現(xiàn)sin函數(shù)模擬的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01python將dict中的unicode打印成中文實(shí)例
這篇文章主要介紹了python將dict中的unicode打印成中文實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05pandas的to_datetime時(shí)間轉(zhuǎn)換使用及學(xué)習(xí)心得
這篇文章主要給大家介紹了關(guān)于pandas的to_datetime時(shí)間轉(zhuǎn)換使用及學(xué)習(xí)心得的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用pandas具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08python自動(dòng)分箱,計(jì)算woe,iv的實(shí)例代碼
今天小編就為大家分享一篇python自動(dòng)分箱,計(jì)算woe,iv的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11