代码练习,三级菜单

1


# -*- coding:utf-8 -*-

menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车站': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}

prompt = "请输入菜单名,进入子菜单\n 输入'b'回到上级菜单\n 输入'q'退出程序:"
current_menu = menu  # 当前菜单
parent_menu = []  # 父菜单
while True:
    if len(current_menu) == 0:
        print('当前菜单为最底层')
    for i in current_menu:
        print('菜单-->', i)
    choice = input(prompt).strip()
    if not choice: continue
    if choice in current_menu:
        parent_menu.append(current_menu)  # 记录父菜单列表
        current_menu = current_menu[choice]  # 当前菜单变为原菜单的子菜单
    elif choice == 'b':
        if len(parent_menu) != 0:
            current_menu = parent_menu.pop()  # 此命令删除最后一个列表元素并返回值给当前菜单 。
        else:
            print('已到菜单最顶层')
    elif choice == 'q':
        print('退出程序')
        break
    else:
        print('请重新输入')


猜你喜欢

转载自blog.51cto.com/317487/2168998
今日推荐