python之02数据类型学习-作业练习2

 

引用博客地址:http://www.cnblogs.com/yuanchenqi/articles/5782764.html

作业描述:

省 市 县的三层数据通过字典 元祖 列表 保存起来
执行程序后 首先看到省级菜单
1.2,3

打印后选择哪个省
选择1后 应该把省里的市打印出来
然后用户选择某个市
把市打出来
最少要有返回上一级
除了第一级返回直接退出

看到第二级可以返回到第一级

无论在哪一层都可以退出这个程序
退出程序不要用exit,用break
用标志位来做退出

# Author:Administrator
# date: 2019/1/24

address = [
    {(100, '上海市'): [{(1001, '上海市'): [(100101, '崇明区'), (100102, '松江区'), (100103, '徐汇区'), (100104, '静安区')]}]},
    {(101, '河南省'): [{(1011, '周口市'): [(101101, '太康县'), (101102, '淮阳县'), (101103, '鹿邑县')]},
                    {(1012, '郑州市'): [(101201, '中原区'), (101202, '上街区'), (101203, '新郑市')]}]},
    {(102, '江苏省'): [{(1021, '南京市'): [(102101, '玄武区'), (102102, '六合区'), (102103, '雨花台区')]},
                    {(1022, '无锡市'): [(102201, '宜兴市'), (102202, '锡山区'), (102203, '惠山区')]},
                    {(1023, '徐州市'): [(102301, '新沂市'), (102302, '睢宁县'), (102303, '铜山区')]}]}
]
exit_flag = False
# print(len(address))
while True and not exit_flag:
    province_keys_code_list = []
    province_keys_list = []
    for item_0 in address:
        for province_key in item_0:
            province_keys_code_list.append(province_key[0])
            province_keys_list.append(province_key)
            print("省份编号:{province_code},省份名称:{province_name}".format(province_code=province_key[0],
                                                                     province_name=province_key[1]))
    province_code_input = input("请输入想要查看的省份编号或输入q退出:").strip()
    if province_code_input == "q":
        exit_flag = True
        break
    elif province_code_input.isdigit() and int(province_code_input) in province_keys_code_list:
        province_code_input = int(province_code_input)
        province_index = province_keys_code_list.index(province_code_input)
        # province_info = address[province_index]  # 找到省份条目完整信息
        province_key_info = province_keys_list[province_index]
        city_list_info = address[province_index][province_key_info]  # 找到城市列表完整信息
        city_keys_code_list = []
        city_keys_list = []
        while True and not exit_flag:
            for city_item in city_list_info:
                for city_key in city_item:
                    city_keys_code_list.append(city_key[0])
                    city_keys_list.append(city_key)
                    print("城市编号:{city_code},城市名称:{city_name}".format(city_code=city_key[0], city_name=city_key[1]))
            city_code_input = input("请输入想要查看的城市编号或输入q退出或输入back返回上一级:").strip().lower()
            if city_code_input == "q":
                exit_flag = True
                break
            elif city_code_input == "back":
                break
            elif city_code_input.isdigit() and int(city_code_input) in city_keys_code_list:
                while True:
                    city_code_input = int(city_code_input)
                    city_index = city_keys_code_list.index(city_code_input)
                    city_key_info = city_keys_list[city_index]
                    area_list_info = city_list_info[city_index][city_key_info]
                    for area_item in area_list_info:
                        print("地区编号:{are_code},地区名称:{area_name}".format(are_code=area_item[0], area_name=area_item[1]))
                    area_code_input = input("请输入想要查看的城市编号或输入q退出或输入back返回上一级:").strip().lower()
                    if area_code_input == "back":
                        break
                    elif area_code_input == "q":
                        exit_flag = True
                        break
                    else:
                        print("输入有误,请重新输入")
            else:
                print("输入无法匹配")
    else:
        print("输入无法匹配。")
if exit_flag:
    print("您已退出。")

 

posted @ 2019-01-24 14:07  hympio  阅读(192)  评论(0)    收藏  举报