zoukankan      html  css  js  c++  java
  • Python入门-三级菜单

    作业题目: 三级菜单

    • 作业需求:

    menu = {
        '北京':{
            '海淀':{
                '五道口':{
                    'soho':{},
                    '网易':{},
                    'google':{}
                },
                '中关村':{
                    '爱奇艺':{},
                    '汽车之家':{},
                    'youku':{},
                },
                '上地':{
                    '百度':{},
                },
            },
            '昌平':{
                '沙河':{
                    '优衣库':{},
                    '北航':{},
                },
                '天通苑':{},
                '回龙观':{},
            },
            '朝阳':{},
            '东城':{},
        },
        '上海':{
            '闵行':{
                "人民广场":{
                    '炸鸡店':{}
                }
            },
            '闸北':{
                '火车站':{
                    '携程':{}
                }
            },
            '浦东':{},
        },
        '山东':{},
    }
    需求:
    可依次选择进入各子菜单
    可从任意一层往回退到上一层
    可从任意一层退出程序
    所需新知识点:列表、字典

    基础版:
    while True:
        for i in menu:
            print(i)
        province = input("请选择省份:  (按Q退出)")
        if province == 'Q':
            exit()
        else:
            print('输入错误')
        if province in menu:
            while True:
                for i in menu[province]:
                    print(i)
                city = input("请选择市:     (按Q退出,q返回)")
                if city == 'Q':
                    exit()
                if city == 'q':
                    break
                else:
                    print('输入错误')
                if city in menu[province]:
                    while True:
                        for i in menu[province][city]:
                            print(i)
                        county = input("请选择区或县:    (按Q退出,q返回)")
                        if county == 'Q':
                            exit()
                        if county == 'q':
                            break
                        else:
                            print('输入错误')
                        if county in menu[province][city]:
                            while True:
                                for i in menu[province][city][county]:
                                    print(i)
                                choice = input('Q退出,q返回:')
                                if choice == 'Q':
                                    exit()
                                if choice == 'q':
                                    break
                                else:
                                    print('输入错误')

    装逼版:

    rank = menu
    last_rank = []
    while True:
        for i in rank:
            print(i)
        choice = input('>:').strip()
        if choice in rank:
            last_rank.append(rank)      # 将当前菜单添加到列表
            rank = rank[choice]         # 进入下一层菜单
        elif choice == 'b':
            if len(last_rank) != 0:
                rank = last_rank.pop()  # 删除列表最后一位元素,从而返回上一层
        elif choice == 'Q':
            exit()

    最里层和最外层还可以增加相应提示。

  • 相关阅读:
    SORT ORDER BY STOPKEY
    javaScript 数值型和字符串型之间的转换
    Caused by: org.apache.ibatis.type.TypeException: Could not resolve type alias 'Student'
    Caused by: java.sql.SQLException: Field 'stu_id' doesn't have a default value
    Result Maps collection does not contain value for StudentMapper.StudentMap
    集群维护
    logstash 调用exec
    logstash zabbix插件
    logstash 调用脚本告警
    Caused by: java.lang.NoSuchMethodException: com.you.entity.sys.Param.()
  • 原文地址:https://www.cnblogs.com/zivli/p/9064696.html
Copyright © 2011-2022 走看看