国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

使用python實現省市三級菜單效果

2020-01-04 17:50:01
字體:
來源:轉載
供稿:網友
本文給大家分享的是使用使用python實現省市三級菜單效果的代碼,非常的實用,有需要的小伙伴可以參考下。
 

地區分三層結構例如:

大中華地區一級劃分:

華東

華中

華北

西南

特別行政區

華南

-------------------------------------------------

請輸入你要查看的大中華地區名字:華中

------------------包含的省名字二級:-----------------

湖北

湖南

河南

-------------------------------------------------

請輸入你要查看的省名字:湖北

--------------包含的城市名三級:-------------------

 程序大概的思路和邏輯:

1 將大中華地區劃用字典列表來構造,用key取省或者地市列表,用for遍歷顯示字典或者列表的元素

2 根據整個字典的key,得到省列表,遍歷打印省的名字列表

3 設置用于跳出外循環的flag(跳出嵌套循環)

4 兩層嵌套循環,外循環for指定3次固定循環,3次輸入省名字錯誤,程序退出(在外循環for后,通過else來實現)

內循環while True是死循環,不指定次數(地市名字輸入錯誤后,會一直要求輸入,直到輸入正確為止),通過break退出內循環

5 通過整個字典的key得到省列表,通過省字典的key得到地市列表,遍歷打印地市的名字列表

6 判斷輸入的地市是否在省字典中,在的話,通過省字典的key,for遍歷打印城市的名字列表不在的話,提示"輸入的省名字不對,請重新輸入",continue跳出當次迭代(循環),繼續輸入省名字還在內循環while中

7 打印城市表后,2個選擇,1是退出整個程序(2個嵌套循環都退出),2是回到上一級別菜單(只需要退出內循環的當前迭代)

8 回到上一級別菜單(只退出內循環while) 判斷用戶輸入的是否是"b",是的話,continnue 退出內循環的當前迭代,開始內循環下次迭代

9 退出整個程序(2個嵌套循環都退出) 判斷用戶輸入的是否是"q",是的話,先將flag變成True,然后break退出while內循環

10 再做一個判斷,判斷flag是否是True,如果是的話,break退出for外循環,至此,退出整個程序(2個嵌套循環都退出)

流程圖:

使用python實現省市三級菜單效果

代碼:

#!/user/binenv python3# -*- coding:utf-8 -*- '''Created on: 2015年1月16日 @author: 呂毅 Email: 371725153@qq.com Version: 1.0 '''  china_map ={ "華南":{  "廣東":["廣州市","佛山市","深圳市","東莞市"],   "廣西":["南寧市","柳州市","桂林市","北海市"],    "海南":["海口市","三亞市","三沙市","儋州市"]  }, "華東":{  "上海":["黃浦區","盧灣區","徐匯區","長寧區","普陀區"],   "安徽":["合肥市","蕪湖市","淮南市","馬鞍山市"],   "江蘇":["南京市","無錫市","徐州市","常州市","蘇州市"]  }, "華北":{  "北京":["東城區","西城區","朝陽區","豐臺區","石景山區","海淀區"],   "山西":["太原市","大同市","陽泉市","長治市"],   "河北":["石家莊市","唐山市","秦皇島市","邢臺市"]  }, "華中":{  "湖北":["武漢市","黃石市","十堰市","十堰市"],   "河南":["鄭州市","開封市","洛陽市","平頂山市"],   "湖南":["長沙市","株洲市","衡陽市","邵陽市"]  }, "西南":{  "重慶":["萬州區","涪陵區","渝中區","大渡口區"],  "四川":["成都市","自貢市","攀枝花市","德陽市"],  "貴州":["貴陽市","六盤水市","遵義市","安順市"],   }, "特別行政區":{  "香港":["屯門","彎仔","北角","西貢"],  "澳門":["花地瑪堂區","圣安多尼堂區","大堂區","望德堂區"],  },  }  print ("-------------------------------------------------")print ("+            +")print ("+            +")print ("+   歡迎來到大中華地區查詢系統地   +")print ("+            +")print ("+            +")print ("-------------------------------------------------")print ("大中華地區一級劃分:")for i in china_map: #遍歷字典的key,列出大中華地區的名字  print (i)print ("-------------------------------------------------")jump_flag = False #用于跳出外循環for i in range(3): #外循環,指定循環3次,3次外循環完了,就退出程序 greater_china_name = input("請輸入你要查看的大中華地區名字:") if greater_china_name in china_map: #檢查輸入的地區是否在地圖中,如果地區名字3次輸入錯誤,程序退出  gc_name = china_map[greater_china_name]  province_name = gc_name.keys()#使用輸入的信息作為key,取出省信息,存在字典中  while True: #內循環,死循環,不指定循環次數,通過break或者flag跳出   print ("------------------包含的省名字二級:-----------------") #分隔線   for i in province_name: #遍歷列表,取出省名字,打印出來    print (i)   print ("-------------------------------------------------") #分隔線   sheng_name_input = input("請輸入你要查看的省名字:")    if sheng_name_input in province_name: #判斷輸入的省名字是否在地區列表中    shi_name = china_map[greater_china_name][sheng_name_input] #取出省中有哪些市,存在列表中    print ("--------------包含的城市名三級:-------------------") #分隔線    for i in shi_name: #遍歷列表,取出地區市名字,打印出來     print (i)    print ("------------------------------------------------") #分隔線    if sheng_name_input not in province_name: #如果輸入的省名字不在在地區列表中    print ("輸入的省名字不對,請重新輸入")    continue #跳出當次迭代,開始下一次迭代循環,直到地市名字輸入正確為止(不停的要求輸入)   back_or_quit = input("請問是否退出?按b:Back是返回上一級菜單;按q:Exit是退出整個程序")   #顯示完地區市后,就要退出程序了,一個是全部退出,一個是返回上一級菜單   if back_or_quit == "q":    jump_flag = True #用于跳出外循環    break #跳出while內循環   if back_or_quit == "b":    continue # 跳出當次迭代,開始下一次迭代循環,重新輸入省處,返回上一步   print ("你輸入的信息有誤,請重新輸入")  if jump_flag: #跳出外循環的條件滿足   break #跳出外循環else:#上面的3次for循環正常執行完畢,else才會執行,如果是不正常退出(break),else不會執行 print ("3次輸入錯誤,程序退出")
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西青区| 莱芜市| 平凉市| 当雄县| 镶黄旗| 腾冲县| 民权县| 神木县| 夹江县| 桃园市| 印江| 黎城县| 文水县| 南和县| 延川县| 满城县| 竹北市| 辉县市| 武清区| 连江县| 行唐县| 张家港市| 岑溪市| 贺兰县| 家居| 平泉县| 东乌珠穆沁旗| 淮南市| 嫩江县| 蓬莱市| 五大连池市| 密山市| 阿拉尔市| 于田县| 南投县| 松江区| 松江区| 大港区| 房山区| 买车| 荔浦县|