題目: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=' ')
