題目:Python實現用戶交互,顯示省市縣三級聯動的選擇
定義的字典為:
dic = {
"江西": { "萍鄉": ["安源", "彭高", "上栗"], "新余": ["良山", "新鋼", "興安嶺"], },
"北京": { "大興區": ["禮賢鎮", "魏善庄鎮", "北臧村鎮"], "昌平區": ["沙河", "化庄", "白浮泉"], },
"福建": { "莆田": ["荔城", "西天尾", "九化山"], "廈門": ["湖里", "思明", "海倉"], }
}
分析:
大體步驟分為以下三步:
1、用戶輸入一個省份時,判斷用戶輸入的省份是否在字典里。
2、當用戶輸入的省份在字典里時,將用戶輸入的這個省份所對應的所有值——該省份下的所有城市的字典取出來。
3、將該省分所對應的所有城市打印出來后,當用戶再輸入要查找的城市時,如果存在則將相對應城市下的縣取出來。
代碼:
dic = { "江西": { "萍鄉": ["安源", "彭高", "上栗"], "新余": ["良山", "新鋼", "興安嶺"], }, "北京": { "大興區": ["禮賢鎮", "魏善庄鎮", "北臧村鎮"], "昌平區": ["沙河", "化庄", "白浮泉"], }, "福建": { "莆田": ["荔城", "西天尾", "九化山"], "廈門": ["湖里", "思明", "海倉"], } } print('可查詢的省份:江西、北京、福建') # 讓用戶輸入要查詢的省份。 while True: province = input('請輸要查詢的省份:') # 當用戶輸入的省份不在要查詢的字典中時,跳出本次循環,繼續讓用戶輸入。 if not province in dic: print('輸入錯誤,請重新輸入') continue # 當用戶輸入的要查詢的省份在字典中時,跳出循環。 break # 將用戶輸入的省份去取出字典中的指定的省份(鍵)的值——市級字典, # 然后遍歷每個市級字典,遍歷的的結果是取出市級字典中每個鍵。 for i in dic[province]: print(i,end = ' ') # 取出的市級字典中的每個城市(鍵),並作一行顯示。 # 讓用戶輸入要查詢的城市。 while True: city = input('請輸入要查詢的城市:') # 當用戶輸入的城市不在要查詢的子字典中時,跳出本次循環,繼續讓用戶輸入。 if not city in dic[province]: print('輸入錯誤') continue # 當用戶輸入的要查詢的城市在子字典中時,跳出循環。 break # 將用戶輸入的城市去取出子字典中的指定的城市(鍵)的值——縣級列表 # 然后遍歷每個鎮縣級列表,遍歷的的結果是取出縣級列表中的每個縣名。 for j in dic[province][city]: print(j,end=' ')