zoukankan      html  css  js  c++  java
  • 2_python之路之多级菜单

    python之路之多级菜单

     

    1.使用知识点

      (1)列表,字典的使用

      (2)if条件判断语句

      (3)for/while循环的使用

    2.代码详细

    #!/usr/bin/env python
    # _*_ coding: utf-8 _*_
    # author:chenjianwen
    # email:1071179133@qq.com
    # update_time:2017-10-16 13:03
    # blog_address:www.cnblogs.com/chenjw-note
    list_data = {
        '广东':{
            '广州市':['天河','越秀','白云'],
            '深圳市':['福田','南山','龙华'],
            '东莞市':['长安','虎门','大朗'],
            '茂名市':['信宜','高州','前排']
        },
        '广西':{
            '南宁市':['青秀区','兴宁区','江南区'],
            '桂林市':['象山区','七星区','临桂区'],
            '梧州市':['长洲区','龙圩区','万秀区'],
            '百色市':['右江区','靖西市','田阳县']
        },
        '湖北':{
            '武汉市':['江岸区','江汉区','硚口区'],
            '黄石市':['黄石港区','西塞山区','下陆区'],
            '十堰市':['茅箭区','张湾区','郧阳区'],
            '宜昌市':['枝江县','远安县','兴山县']
        }
    }
    first_level_data = []
    for one in list_data:
        first_level_data.append(one)
    #print(first_level_data)
    import sys
    def main(data):
        while True:
            print("本级菜单如下,请选择:")
            for one in data:
                print(one)
            select1 = input("请选择【q退出,b上一级】:").strip()
            if select1.startswith('q'):             ##输入q则退出
                sys.exit(0)
            elif select1.startswith('b'):           ##输入b则判断,当一级菜单的内容存在data中时,则说明目前是第一级,跳出循环继续下一次循环,否则返回上一级
                if first_level_data[0] in data:
                    continue
                else:
                    return
            if type(data) == dict:              ##通过判断data是否为字典格式来确定执行内容
                next_level = data.get(select1)
                if next_level:
                    main(next_level)
                else:
                    print("输入有误,请重新输入:")
            else:
                print("没有下一级了....,请重新选择...")
    
    
    main(list_data)

    3.执行结果

  • 相关阅读:
    设置IIS7/IIS7.5的FTP支持断点续传
    win10图片打开方式里没有默认照片查看器的解决方法
    使用C#的HttpWebRequest模拟登陆网站
    在Raid模式下装Win10找不到固态硬盘怎么办
    C# String 前面不足位数补零的方法
    [SQL Server]无法创建 SSIS 运行时对象,请验证 DTS.dll 是否可用及是否已注册
    HTTPS协议说明
    技术晨读_20160217
    技术晨读_20160215
    fastcgi安装
  • 原文地址:https://www.cnblogs.com/chenjw-note/p/7674054.html
Copyright © 2011-2022 走看看