Python实现用户交互,显示省市县三级联动的选择
题目: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=' ')