zoukankan      html  css  js  c++  java
  • 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=' ')
    

      

  • 相关阅读:
    TCP ,UDP概念和TCP三次握手连接 的知识点总结
    常见的五类排序算法图解和实现(插入类:直接插入排序,折半插入排序,希尔排序)
    c/c++ 函数、常量、指针和数组的关系梳理
    编译器出现conflicting types for 某某的错误原因总结
    字符串模式匹配之KMP算法图解与 next 数组原理和实现方案
    图解字符串的朴素模式匹配算法
    字符串和字符串的常见存储结构
    objective-c中的@selector()和 c /c++的函数指针
    IOS-Foundation框架结构
    一道面试题:用多种方法实现两个数的交换
  • 原文地址:https://www.cnblogs.com/fyknight/p/7986250.html
Copyright © 2011-2022 走看看