• python实现三级菜单


    一、要求: 1、一开始打印出所有省份和提示 

          2、用户输入省份以此查询城市

          3、在按照输出的城市名提示用户输入,最后输出用户所查询的区县名

          4、随时输入“back”可以返回上一级菜单

          5、输入“Q”可以结束整个程序

          6、若输入的内容无效则重新输入

    二、流程图:

    三、步骤:

    1、先将所需的数据存储。(利用字典和列表的嵌套)

    2、获取到所有的省份名

    3、获取到所有的城市名

    4、判断用户输入是否有效,并执行相应功能

    四、代码如下

    import os
    region = {
         '山东' : {
             '青岛' : ['四方','黄岛','崂山','李沧','城阳'],
             '济南' : ['历城','槐荫','高新','长青','章丘'],
             '烟台' : ['龙口','莱山','牟平','蓬莱','招远']
         },
         '江苏' : {
            '苏州' : ['沧浪','相城','平江','吴中','昆山'],
             '南京' : ['白下','秦淮','浦口','栖霞','江宁'],
             '无锡' : ['崇安','南长','北塘','锡山','江阴']
        },
         '浙江' : {
             '杭州' : ['西湖','江干','下城','上城','滨江'],
             '宁波' : ['海曙','江东','江北','镇海','余姚'],
             '温州' : ['鹿城','龙湾','乐清','瑞安','永嘉']
         },
         '安徽' : {
             '合肥' : ['蜀山','庐阳','包河','经开','新站'],
             '芜湖' : ['镜湖','鸠江','无为','三山','南陵'],
             '蚌埠' : ['蚌山','龙子湖','淮上','怀远','固镇']
         },
         '广东' : {
             '深圳' : ['罗湖','福田','南山','宝安','布吉'],
             '广州' : ['天河','珠海','越秀','白云','黄埔'],
             '东莞' : ['莞城','长安','虎门','万江','大朗']
         }
    }
    print("'back'--返回上一级    'Q'--结束程序")
    
    #获取省份列表
    province_list = list(region.keys())
    print(province_list)
    
    #获取城市列表
    city_list = []
    for i in range(province_list.__len__()):
        tem = list(region[province_list[i]].keys())
        city_list.append(tem)
    while 1:
        #省份查询
        cinprovince = input("请输入所要查询的省名: ")
        if cinprovince in province_list:
            city_index = province_list.index(cinprovince)
            print('''%s : %s'''%(cinprovince,city_list[city_index]))
            #城市查询
            while 1:
                cincity = input("请输入所要查询的城市名: ")
                if cincity in city_list[city_index]:
                    print('''%s : %s'''%(cincity,region[cinprovince][cincity]))
                    sign = input("请输入命令:  ")
                    if sign == "Q":
                        os._exit(0)
                    elif sign == 'back':
                        print('''%s : %s'''%(cinprovince,city_list[city_index]))
                        break
                elif cincity == 'Q':
                    os._exit(0)
                elif cincity == 'back':
                    break
    
        elif cinprovince == 'Q':
            os._exit(0)
        else:
            print(province_list)
            continue

     五、心得:

    1、os._exit()可以结束整个程序的执行,exit()也可以结束程序的执行,不过如果放在if或者for中,则只结束当前域内的程序,类似于break的功能

    2、list(列表名.keys())与列表名.keys()的区别在于:前者打印出来之后没有dict.keys声明

    3、listname.index(n)可以返回n所在listname中的下标

  • 相关阅读:
    CentOS下通过yum安装svn及配置
    CentOS使用YUM安装php运行环境,包含php,php-fpm,nginx,mysql
    centos6.5直接yum安装nginx
    用Xshell设置CentOS密钥登录
    CentOS安装系统时硬盘分区建议
    jQuery.extend 函数详解
    jQuery自定义插件
    SVN常用命令
    iwebshop判断是不是微信打开,这样可能把微信支付显示出来
    Angularjs使用 ajax实例
  • 原文地址:https://www.cnblogs.com/cencenyue/p/7270636.html
Copyright © 2020-2023  润新知