zoukankan      html  css  js  c++  java
  • 城市3级列表最终版

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # by wk
    
    '''
    用户交互,显示省市县三级联动的选择
    要求:用户输入河北,则打印河北省下的市,用户输入市,则显示该河北省的这个市下的县
    dic = {
        "河北": {
            "石家庄": ["鹿泉", "藁城", "元氏"],
            "邯郸": ["永年", "涉县", "磁县"],
        }
        "河南": {
            ...
        }
        "山西": {
            ...
        }
    '''
    
    
    # import sys
    
    # 取出省市列表
    def provinces_dict():
        my_city_dict = {
            "河北": {
                "石家庄": ["鹿泉", "藁城", "元氏"],
                "邯郸": ["永年", "涉县", "磁县"],
                "唐山": ["玉田县", "乐亭县", "迁西县"],
            },
            "江苏": {
                "南京": ["溧水", "高淳", "玄武"],
                "苏州": ["平江", "虎丘", "虞山"],
                "无锡": ["崇安", "南长", "北塘"],
            },
            "山西": {
                "太原": ["清徐县", "阳曲县", "娄烦县"],
                "大同": ["天镇县", "阳高县", "广灵县"],
                "朔州": ["怀仁", "右玉", "山阴"],
            }
        }
        return my_city_dict
    
    
    # 省列表并输入被选择的省
    def choose_provinces(provinces_list):
        for provinces in provinces_list:
            print(provinces)
        my_provinces = input('请输入省的名称: ')
        return my_provinces
    
    
    # 传入省字典,展示城市列表并输入被选择的城市
    def choose_city(my_city, my_provinces):
        for area in my_city[my_provinces]:
            print(area)
        my_area = input('请输入城市的名称,返回上一级请按(B or b): ')
        return my_area
    
    
    # 传入省,市字典,展示县
    def choose_location(my_city, choose_city, choose_area):
        for mylocation in my_city[choose_city][choose_area]:
            print(mylocation)
    
    
    def main():
        flag = True
        while flag:
            flag_provinces = True
            my_provinces_dict = provinces_dict()
            while flag_provinces:
                flag_city = True
                my_provinces = choose_provinces(my_provinces_dict)
                if my_provinces not in my_provinces_dict:
                    print('您输入的信息有误,请重新输入!')  # 如果输入的数据不在菜单里,需要重新输入
                    flag_city = False
                while flag_city:
                    flag_location = True
                    my_city = choose_city(my_provinces_dict, my_provinces)
                    if my_city == 'B' or my_city == 'b':  # 判断如果选择了B或者b返回上级菜单
                        flag_location = False  # 退出本层循环
                        flag_city = False  # 退出上层层循环
                    elif my_city not in my_provinces_dict[my_provinces]:
                        print('您输入的信息有误,请重新输入!')  # 如果输入的数据不在菜单里,需要重新输入
                        flag_location = False  # 退出本层循环
                    while flag_location:
                        choose_location(my_provinces_dict, my_provinces, my_city)
                        # if my_location not in my_provinces_dict[my_provinces][my_city]:
                        #     flag_location = True
                        flag_location = False  # 退出
                        flag_city = False
                        flag_provinces = False
                        flag = False
    
    
    if __name__ == '__main__':
        main()
  • 相关阅读:
    CocosCreator-Widget,前后台切换
    Unity获取未激活游戏对象的方法 、坐标转换
    Mathf函数
    C# activeSelf、activeInHierarchy、SetActive、SetActiveRecursively
    C# 碰撞,射线,点击,周期函数等基本代码
    TCP/IP 协议栈
    笔记—《程序员自我修养》
    Container With Most Water 双指针法
    多线程服务器 编程模型
    c++ 高效并发编程
  • 原文地址:https://www.cnblogs.com/godspeed034/p/7245624.html
Copyright © 2011-2022 走看看