三级菜单练习
dict_city = {"北京": {"北京": {"东城区", "西城区", "朝阳区"}}, "四川": {"成都市": {"锦江区", "青羊区", "武侯区"}, "自贡市": {"自流井区", "贡井区"}, "南充市": {"高坪区", "嘉陵区", "营山县"}}, "广东": {"广州市": {"荔湾区", "越秀区", "海珠区"}, "韶关市": {"武江区", "曲江区"}, "深圳市": {"罗湖区", "福田区", "南山区"}}, "陕西": {"西安市": {"新城区", "碑林区", "莲湖区"}, "铜川市": {"王益区", "宜君县"}}, "湖南": {"长沙市": {"芙蓉区", "天心区", "长沙县"}, "株洲市": {"荷塘区", "芦淞区"}, "湘潭市": {"雨湖区", "岳塘区"}}} new_city_dict = dict_city # 动态字典 input_list = [] # 返回列表 city_flag = True while city_flag: city_list = [] for i in new_city_dict: # 循环字典 print(i) city_list.append(i) # 把城市存到列表中 if isinstance(new_city_dict, set): # 判断字典是否是集合(判断是否是最后一层) while city_flag: print("后面没有内容了!") input_return = input("请输入【b】返回/【q】退出:").strip() # 删除输入后的前后空格 if input_return == "b": new_city_dict = input_list.pop() # 删除列表中的最后一个,赋值给动态字典,相当于返回字典上一层 break elif input_return == "q": city_flag = False # 用标志位退出2层循环 else: print("你输入的内容不正确!") else: input_city = input("请选择城市【b】返回/【q】退出:").strip() # 删除输入后的前后空格 if input_city in city_list: # 判断输入的城市是否在列表中 input_list.append(new_city_dict) # 把选择的字典赋值给返回列表 new_city_dict = new_city_dict[input_city] # 选择字典的子类赋值给动态字典,进入到下一层 elif input_city == "b": if input_list: # 判断是否是空列表 new_city_dict = input_list.pop() # 删除列表中的最后一个,赋值给动态字典,相当于返回字典上一层 else: print("不能再返回了!") elif input_city == "q": break # 退出循环 else: print("请从列表中选择!")