三级菜单练习

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("请从列表中选择!")

 

posted @ 2024-07-11 18:10  GDquicksand  阅读(3)  评论(0编辑  收藏  举报