#!-*- coding:utf-8 -*- """ Mut_select of the place name. 1.1-3 to Three layer 2."q" to exit. 3."b" to back. 4.other words to retry. 5.add the values in the dict,no infact 需要改進: 在交互界面增加和刪除詞典裏的值 """ PlaceName = {"遼寧": {"大連": ("高新", "中山"), "瀋陽": ("鐵西", "渾南"), "葫蘆島": ("蓮山", "興城")}, "吉林": {"長春": ("大窪", "高天"), "四平": ("二道河", "路陽"), "通遼": ("通化", "黑道")}, "黑龍江": {"哈爾": ("坪山", "故陽"), "大慶": ("黑油", "千多"), "漠河": ("俄國", "最北"), "毅力": ("堅強", "努力")}} def province(place_name): # 定義選擇菜單 province_list = [] j = 1 for i in place_name.keys(): # 讀取詞典裏的 鍵名 province_list = province_list+[i] print(j, '.', i) # 在屏幕上打印選擇菜單 j += 1 return province_list # 返回選擇菜單的list def judge_input(input_list): # 判斷輸入 pro_name = "" pr_value = input("Please select number,press 'q' to exit:") # 獲取輸入的選項值 if ('1' <= pr_value <= str(len(input_list))) and len(pr_value) == 1: # 判斷選擇城市 pro_name = input_list[int(pr_value)-1] # 動態賦值,詞典加減項,對本程序無影響 print("您選擇%s,以下是它的1下屬區域:" % pro_name) # 打印 return pro_name # 返回選擇省/市的名字 elif pr_value == 'q' or pr_value == 'Q': # 判斷退出,返回值0,供主程序判斷 print("You quit the program!") return '0' elif pr_value == 'b' or pr_value == 'B': # 判斷返回,返回值1,供主程序判斷 return '-1' else: return while True: # 無限循環,直到輸入q/Q ProvinceLists = province(PlaceName) # 調用讀取詞典鍵名函數,返回省份list return_value_p = judge_input(ProvinceLists) # 調用輸入判斷函數,返回輸入省值 if return_value_p == '0': # 0對應q/Q ,結束程序,第一級菜單b/B無意義,無須處理 break elif return_value_p in PlaceName: # 判斷輸入鍵值存在字典裏 CityName = PlaceName[return_value_p] # 讀取選擇省份值,存入 while True: # 進入選擇市級菜單 CityLists = province(CityName) # 調用讀取詞典鍵名函數,返回城市list return_value_c = judge_input(CityLists) # 調用輸入判斷函數,返回輸入城市值 if return_value_c == '0': # 0對應q/Q,賦值,滿足外層結束條件,結束程序 return_value_p = '0' break elif return_value_c in CityName: # 判斷輸入鍵值存在子字典裏 CountryList = CityName[return_value_c] # 縣級元組,存入 for name in CountryList: # 遍歷元組值,輸出 print(name) while True: # 最下級菜單的輸入判斷 last_value = input("Please press 'b' to return or 'q' to quit:") if last_value == 'q' or last_value == 'Q': # q/Q設置上兩級循環的退出條件,退出程序 return_value_c = '0' return_value_p = '0' break elif last_value == 'b' or last_value == 'B': # b/B退出循環 break else: continue # 輸入其它選項,結束本次循環 elif return_value_c == '-1': # 城市層級,讀取b/B,結束城市循環,返回省級 break if return_value_p == '0': # 讀取退出程序的條件,退出 break if return_value_p == '0': # 讀取退出程序的條件,退出 break print('本次查詢已經結束!') #print(City["遼寧"]["瀋陽"])
Python編寫地區選擇-Dict
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.