Python 三级菜单
生活随笔
收集整理的這篇文章主要介紹了
Python 三级菜单
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
任務(wù)要求:
1、列出菜單信息提供用戶選擇
2、根據(jù)用戶選擇進(jìn)入下級菜單
3、用戶輸入b返回上一級菜單
4、用戶輸入q直接退出系統(tǒng)
?
流程圖:
?
?代碼:
1、主文件
#!/usr/bin/env python # -*- conding:utf-8 -*- # create a menu system# 20170911 # evescnimport sys import yamldef myinput():# 輸出提示信息的函數(shù)print("輸入q退出系統(tǒng)")print("輸入b返回上一級菜單")key = input("請輸入對應(yīng)的名稱進(jìn)入下級菜單:")return keydef mycity(key):# 輸出市級別信息的函數(shù)print("-------------------------------------------------")for i, m in enumerate(menu[str(key)], 1):for item in m.keys():print(" ", i, item)key = myinput()return keydef mycounty(key1, key2):# 輸出縣基本信息的函數(shù)print("-------------------------------------------------")for i, m in enumerate(menu[str(key1)], 1):for item in m.keys():if item == key2:for i, item in enumerate(m[str(item)], 1):print(" ", i, item)key = myinput()return keydef mymunici(key):# 輸出4個直轄市的函數(shù)print("-------------------------------------------------")for i, item in enumerate(menu[str(key)], 1):print(" ", i, item)key = myinput()return keydef mysar(key):# 輸出特別行政區(qū)的函數(shù)print("-------------------------------------------------")# for i, item in enumerate(menu[str(key)], 1):i = 1print(" ", i, menu[str(key)])key = myinput()return keydef exitorcontinue(key):# 判斷用戶鍵入的值,以便判斷是否退出或返回上一級if key == 'q':sys.exit("感謝使用查詢系統(tǒng)")elif key == 'b':return 0# 導(dǎo)入yaml文件,并轉(zhuǎn)換為字典格式 f = open('pro.yaml', 'r', encoding='utf-8') menu = yaml.load(f)# 定義直轄市列表,判斷用戶輸入是否為直轄市 municipalities = ['北京市', '上海市', '重慶市', '天津市', ]# 定義特別行政區(qū) SAR = ['香港', '澳門', '臺灣', '釣魚島', ]# 定義在省級錯誤次數(shù) n = 3while True:if n == 0: # 3次輸入不正確直接退出系統(tǒng)sys.exit("感謝使用查詢系統(tǒng)")print("-------------------------------------------------")for i, item in enumerate(menu.keys(), 1): # 列出整個省級菜單print(" ", i, item)key1 = myinput()if key1 == 'q' or key1 == 'b': # 判斷此次鍵入的值是否為q,bsys.exit("感謝使用查詢系統(tǒng)")if key1 not in menu.keys(): # 判斷此次鍵入的值是否在所有可選的省級菜單中n -= 1print("-------------------------------------------------")print("你輸入的省份不對,請重新輸入")print("你還有%s次機(jī)會,否則將直接退出系統(tǒng)" %n)continuewhile True:if key1 in municipalities: # 判斷是否屬于直轄市key2 = mymunici(key1)if exitorcontinue(key2) == 0:breakelif key1 in SAR: # 判斷是否屬于特別行政區(qū)key2 = mysar(key1)if exitorcontinue(key2) == 0:breakelse: # 不屬于直轄市key2 = mycity(key1)if exitorcontinue(key2) == 0:breakwhile True: # 查找第三級縣菜單key3 = mycounty(key1, key2)if exitorcontinue(key3) == 0:break menu?
2、省市縣文件
香港:香港 澳門:澳門 臺灣:臺灣 釣魚島:釣魚島 北京市:- 市轄區(qū)- 東城區(qū)- 西城區(qū)- 崇文區(qū)- 宣武區(qū)- 朝陽區(qū)- 豐臺區(qū)- 石景山區(qū)- 海淀區(qū)- 門頭溝區(qū)- 房山區(qū)- 通州區(qū)- 順義區(qū)- 昌平區(qū)- 大興區(qū)- 懷柔區(qū)- 平谷區(qū)- 密云縣- 延慶縣 天津市:- 市轄區(qū)- 和平區(qū)- 河?xùn)|區(qū)- 河西區(qū)- 南開區(qū)- 河北區(qū)- 紅橋區(qū)- 塘沽區(qū)- 漢沽區(qū)- 大港區(qū)- 東麗區(qū)- 西青區(qū)- 津南區(qū)- 北辰區(qū)- 武清區(qū)- 寶坻區(qū)- 寧河縣- 靜海縣- 薊 縣 河北省:- 石家莊市:- 長安區(qū)- 橋東區(qū)- 橋西區(qū)- 新華區(qū)- 井陘礦區(qū)- 裕華區(qū)- 井陘縣- 正定縣- 欒城縣- 行唐縣- 靈壽縣- 高邑縣- 深澤縣- 贊皇縣- 無極縣- 平山縣- 元氏縣- 趙縣- 辛集市- 藁城市- 晉州市- 新樂市- 鹿泉市- 唐山市:- 路南區(qū)- 路北區(qū)- 古冶區(qū)- 開平區(qū)- 豐南區(qū)- 豐潤區(qū)- 灤縣- 灤南縣- 樂亭縣- 遷西縣- 玉田縣- 唐??h- 遵化市- 遷安市- 秦皇島市:- 海港區(qū)- 山海關(guān)區(qū)- 北戴河區(qū)- 青龍滿族自治縣- 昌黎縣- 撫寧縣- 盧龍縣- 邯鄲市:- 邯山區(qū)- 叢臺區(qū)- 復(fù)興區(qū)- 峰峰礦區(qū)- 邯鄲縣- 臨漳縣- 成安縣- 大名縣- 涉 縣- 磁 縣- 肥鄉(xiāng)縣- 永年縣- 邱 縣- 雞澤縣- 廣平縣- 館陶縣- 魏 縣- 曲周縣- 武安市- 邢臺市:- 橋東區(qū)- 橋西區(qū)- 邢臺縣- 臨城縣- 內(nèi)丘縣- 柏鄉(xiāng)縣- 隆堯縣- 任 縣- 南和縣- 寧晉縣- 巨鹿縣- 新河縣- 廣宗縣- 平鄉(xiāng)縣- 威 縣- 清河縣- 臨西縣- 南宮市- 沙河市- 保定市:- 新市區(qū)- 北市區(qū)- 南市區(qū)- 滿城縣- 清苑縣- 淶水縣- 阜平縣- 徐水縣- 定興縣- 唐 縣- 高陽縣- 容城縣- 淶源縣- 望都縣- 安新縣- 易 縣- 曲陽縣- 蠡 縣- 順平縣- 博野縣- 雄 縣- 涿州市- 定州市- 安國市- 高碑店市- 張家口市:- 橋東區(qū)- 橋西區(qū)- 宣化區(qū)- 下花園區(qū)- 宣化縣- 張北縣- 康??h- 沽源縣- 尚義縣- 蔚 縣- 陽原縣- 懷安縣- 萬全縣- 懷來縣- 涿鹿縣- 赤城縣- 崇禮縣- 承德市:- 雙橋區(qū)- 雙灤區(qū)- 鷹手營子礦區(qū)- 承德縣- 興隆縣- 平泉縣- 灤平縣- 隆化縣- 豐寧滿族自治縣- 寬城滿族自治縣- 圍場滿族蒙古族自治縣- 滄州市:- 新華區(qū)- 運(yùn)河區(qū)- 滄 縣- 青 縣- 東光縣- 海興縣- 鹽山縣- 肅寧縣- 南皮縣- 吳橋縣- 獻(xiàn) 縣- 孟村回族自治縣- 泊頭市- 任丘市- 黃驊市- 河間市- 廊坊市:- 安次區(qū)- 廣陽區(qū)- 固安縣- 永清縣- 香河縣- 大城縣- 文安縣- 大廠回族自治縣- 霸州市- 三河市- 衡水市:- 桃城區(qū)- 棗強(qiáng)縣- 武邑縣- 武強(qiáng)縣- 饒陽縣- 安平縣- 故城縣- 景 縣- 阜城縣- 冀州市- 深州市 山西省:- 太原市:- 小店區(qū)- 迎澤區(qū)- 杏花嶺區(qū)- 尖草坪區(qū)- 萬柏林區(qū)- 晉源區(qū)- 清徐縣- 陽曲縣- 婁煩縣- 古交市- 大同市:- 城 區(qū)- 礦 區(qū)- 南郊區(qū)- 新榮區(qū)- 陽高縣- 天鎮(zhèn)縣- 廣靈縣- 靈丘縣- 渾源縣- 左云縣- 大同縣- 陽泉市:- 城 區(qū)- 礦 區(qū)- 郊 區(qū)- 平定縣- 盂 縣- 長治市:- 城 區(qū)- 郊 區(qū)- 長治縣- 襄垣縣- 屯留縣- 平順縣- 黎城縣- 壺關(guān)縣- 長子縣- 武鄉(xiāng)縣- 沁 縣- 沁源縣- 潞城市- 晉城市:- 城 區(qū)- 沁水縣- 陽城縣- 陵川縣- 澤州縣- 高平市- 朔城區(qū)- 平魯區(qū)- 山陰縣- 應(yīng) 縣- 右玉縣- 懷仁縣- 晉中市:- 榆次區(qū)- 榆社縣- 左權(quán)縣- 和順縣- 昔陽縣- 壽陽縣- 太谷縣- 祁 縣- 平遙縣- 靈石縣- 介休市- 運(yùn)城市:- 鹽湖區(qū)- 臨猗縣- 萬榮縣- 聞喜縣- 稷山縣- 新絳縣- 絳 縣- 垣曲縣- 夏 縣- 平陸縣- 芮城縣- 永濟(jì)市- 河津市- 忻州市:- 忻府區(qū)- 定襄縣- 五臺縣- 代 縣- 繁峙縣- 寧武縣- 靜樂縣- 神池縣- 五寨縣- 岢嵐縣- 河曲縣- 保德縣- 偏關(guān)縣- 原平市- 臨汾市:- 堯都區(qū)- 曲沃縣- 翼城縣- 襄汾縣- 洪洞縣- 古 縣- 安澤縣- 浮山縣- 吉 縣- 鄉(xiāng)寧縣- 大寧縣- 隰 縣- 永和縣- 蒲 縣- 汾西縣- 侯馬市- 霍州市- 呂梁市:- 離石區(qū)- 文水縣- 交城縣- 興 縣- 臨 縣- 柳林縣- 石樓縣- 嵐 縣- 方山縣- 中陽縣- 交口縣- 孝義市- 汾陽市 內(nèi)蒙古自治區(qū):- 呼和浩特市:- 新城區(qū)- 回民區(qū)- 玉泉區(qū)- 賽罕區(qū)- 土默特左旗- 托克托縣- 和林格爾縣- 清水河縣- 武川縣- 包頭市:- 東河區(qū)- 昆都侖區(qū)- 青山區(qū)- 石拐區(qū)- 白云礦區(qū)- 九原區(qū)- 土默特右旗- 固陽縣- 達(dá)爾罕茂明安聯(lián)合旗- 海勃灣區(qū)- 海南區(qū)- 烏達(dá)區(qū)- 赤峰市:- 紅山區(qū)- 元寶山區(qū)- 松山區(qū)- 阿魯科爾沁旗- 巴林左旗- 巴林右旗- 林西縣- 克什克騰旗- 翁牛特旗- 喀喇沁旗- 寧城縣- 敖漢旗- 通遼市:- 科爾沁區(qū)- 科爾沁左翼中旗- 科爾沁左翼后旗- 開魯縣- 庫倫旗- 奈曼旗- 扎魯特旗- 霍林郭勒市- 鄂爾多斯市:- 東勝區(qū)- 達(dá)拉特旗- 準(zhǔn)格爾旗- 鄂托克前旗- 鄂托克旗- 杭錦旗- 烏審旗- 伊金霍洛旗- 呼倫貝爾市:- 海拉爾區(qū)- 阿榮旗- 莫力達(dá)瓦達(dá)斡爾族自治旗- 鄂倫春自治旗- 鄂溫克族自治旗- 陳巴爾虎旗- 新巴爾虎左旗- 新巴爾虎右旗- 滿洲里市- 牙克石市- 扎蘭屯市- 額爾古納市- 根河市- 巴彥淖爾市:- 臨河區(qū)- 五原縣- 磴口縣- 烏拉特前旗- 烏拉特中旗- 烏拉特后旗- 杭錦后旗- 烏蘭察布市:- 集寧區(qū)- 卓資縣- 化德縣- 商都縣- 興和縣- 涼城縣- 察哈爾右翼前旗- 察哈爾右翼中旗- 察哈爾右翼后旗- 四子王旗- 豐鎮(zhèn)市- 興安盟:- 烏蘭浩特市- 阿爾山市- 科爾沁右翼前旗- 科爾沁右翼中旗- 扎賚特旗- 突泉縣- 錫林郭勒盟:- 二連浩特市- 錫林浩特市- 阿巴嘎旗- 蘇尼特左旗- 蘇尼特右旗- 東烏珠穆沁旗- 西烏珠穆沁旗- 太仆寺旗- 鑲黃旗- 正鑲白旗- 正藍(lán)旗- 多倫縣- 阿拉善盟:- 阿拉善左旗- 阿拉善右旗- 額濟(jì)納旗 遼寧省:- 沈陽市:- 和平區(qū)- 沈河區(qū)- 大東區(qū)- 皇姑區(qū)- 鐵西區(qū)- 蘇家屯區(qū)- 東陵區(qū)- 沈北新區(qū)*- 于洪區(qū)- 遼中縣- 康平縣- 法庫縣- 新民市- 大連市:- 中山區(qū)- 西崗區(qū)- 沙河口區(qū)- 甘井子區(qū)- 旅順口區(qū)- 金州區(qū)- 長??h- 瓦房店市- 普蘭店市- 莊河市- 鞍山市:- 鐵東區(qū)- 鐵西區(qū)- 立山區(qū)- 千山區(qū)- 臺安縣- 岫巖滿族自治縣- 海城市- 撫順市:- 新?lián)釁^(qū)- 東洲區(qū)- 望花區(qū)- 順城區(qū)- 撫順縣- 新賓滿族自治縣- 清原滿族自治縣- 本溪市:- 平山區(qū)- 溪湖區(qū)- 明山區(qū)- 南芬區(qū)- 本溪滿族自治縣- 桓仁滿族自治縣- 丹東市:- 元寶區(qū)- 振興區(qū)- 振安區(qū)- 寬甸滿族自治縣- 東港市- 鳳城市- 錦州市:- 古塔區(qū)- 凌河區(qū)- 太和區(qū)- 黑山縣- 義 縣- 凌海市- 北鎮(zhèn)市*- 營口市:- 站前區(qū)- 西市區(qū)- 鲅魚圈區(qū)- 老邊區(qū)- 蓋州市- 大石橋市- 阜新市:- 海州區(qū)- 新邱區(qū)- 太平區(qū)- 清河門區(qū)- 細(xì)河區(qū)- 阜新蒙古族自治縣- 彰武縣- 遼陽市:- 白塔區(qū)- 文圣區(qū)- 宏偉區(qū)- 弓長嶺區(qū)- 太子河區(qū)- 遼陽縣- 燈塔市- 盤錦市:- 雙臺子區(qū)- 興隆臺區(qū)- 大洼縣- 盤山縣- 鐵嶺市:- 銀州區(qū)- 清河區(qū)- 鐵嶺縣- 西豐縣- 昌圖縣- 調(diào)兵山市- 開原市- 朝陽市- 市轄區(qū)- 雙塔區(qū)- 龍城區(qū)- 朝陽縣:- 建平縣- 喀喇沁左翼蒙古族自治縣- 北票市- 凌源市- 葫蘆島市:- 連山區(qū)- 龍港區(qū)- 南票區(qū)- 綏中縣- 建昌縣- 興城市 吉林省:- 長春市:- 南關(guān)區(qū)- 寬城區(qū)- 朝陽區(qū)- 二道區(qū)- 綠園區(qū)- 雙陽區(qū)- 農(nóng)安縣- 九臺市- 榆樹市- 德惠市 省市縣文件??
測試結(jié)果:?
-------------------------------------------------1 遼寧省2 釣魚島3 北京市4 天津市5 吉林省6 河北省7 臺灣8 內(nèi)蒙古自治區(qū)9 山西省10 香港11 澳門 輸入q退出系統(tǒng) 輸入b返回上一級菜單 請輸入對應(yīng)的名稱進(jìn)入下級菜單:臺灣 -------------------------------------------------1 臺灣 輸入q退出系統(tǒng) 輸入b返回上一級菜單 請輸入對應(yīng)的名稱進(jìn)入下級菜單:b -------------------------------------------------1 遼寧省2 釣魚島3 北京市4 天津市5 吉林省6 河北省7 臺灣8 內(nèi)蒙古自治區(qū)9 山西省10 香港11 澳門 輸入q退出系統(tǒng) 輸入b返回上一級菜單 請輸入對應(yīng)的名稱進(jìn)入下級菜單:北京市 -------------------------------------------------1 市轄區(qū)2 東城區(qū)3 西城區(qū)4 崇文區(qū)5 宣武區(qū)6 朝陽區(qū)7 豐臺區(qū)8 石景山區(qū)9 海淀區(qū)10 門頭溝區(qū)11 房山區(qū)12 通州區(qū)13 順義區(qū)14 昌平區(qū)15 大興區(qū)16 懷柔區(qū)17 平谷區(qū)18 密云縣19 延慶縣 輸入q退出系統(tǒng) 輸入b返回上一級菜單 請輸入對應(yīng)的名稱進(jìn)入下級菜單:b -------------------------------------------------1 遼寧省2 釣魚島3 北京市4 天津市5 吉林省6 河北省7 臺灣8 內(nèi)蒙古自治區(qū)9 山西省10 香港11 澳門 輸入q退出系統(tǒng) 輸入b返回上一級菜單 請輸入對應(yīng)的名稱進(jìn)入下級菜單:山西省 -------------------------------------------------1 太原市2 大同市3 陽泉市4 長治市5 晉城市6 晉中市7 運(yùn)城市8 忻州市9 臨汾市10 呂梁市 輸入q退出系統(tǒng) 輸入b返回上一級菜單 請輸入對應(yīng)的名稱進(jìn)入下級菜單:太原市 -------------------------------------------------1 小店區(qū)2 迎澤區(qū)3 杏花嶺區(qū)4 尖草坪區(qū)5 萬柏林區(qū)6 晉源區(qū)7 清徐縣8 陽曲縣9 婁煩縣10 古交市 輸入q退出系統(tǒng) 輸入b返回上一級菜單 請輸入對應(yīng)的名稱進(jìn)入下級菜單:b -------------------------------------------------1 太原市2 大同市3 陽泉市4 長治市5 晉城市6 晉中市7 運(yùn)城市8 忻州市9 臨汾市10 呂梁市 輸入q退出系統(tǒng) 輸入b返回上一級菜單 請輸入對應(yīng)的名稱進(jìn)入下級菜單:q 感謝使用查詢系統(tǒng) Result?
轉(zhuǎn)載于:https://www.cnblogs.com/python-gm/p/7552156.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Python 三级菜单的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: List,Set和Map详解及其区别和他
- 下一篇: python进行数据分析