欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

打印菜单(printMenu.py) 博客分类: python python打印菜单 

程序员文章站 2024-03-16 14:47:16
...
# 需求:
# 可依次选择进入各子菜单
# 可从任意一层往回退到上一层
# 可从任意一层退出程序
# 所需新知识点:列表、字典

# 踩分点:
# 1.只用一个while循环,且整体代码量少于15行按完成需求/条—25分
# 2.只用一个while循环,且整体代码量多于15行需求全部完成给90分
# 3.其他情况按完成需求/条—20分

menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车站': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}
path, msg = [menu], ''
while True:
    print(list(path[-1].keys()), '\t>>>' if len(msg) > 0 else '', msg)
    choice = input("输入下一级地址,退出(q),后退(b):").strip(' \t\n\r')
    if choice == 'q':
        break
    elif choice == '':
        msg = '输入不能为空!'
    elif choice == 'b':
        msg = '到顶了!' if len(path) == 1 else path.pop() and ''
    elif choice in path[-1]:
        msg = path.append(path[-1][choice]) or ''
    else:
        msg = '地址输入错误!'


不能再短(*^▽^*):
path, msg = [menu], ' '
while True:
    print(list(path[-1].keys()), '' if msg == ' ' else '\t>>>', msg)
    choice = input("输入下一级地址,退出(q),后退(b):").strip(' \t\n\r')
    if choice == 'q':
        break
    else:
        msg = (choice == '' and '输入不能为空!') \
          or (choice == 'b' and (len(path) == 1 and '到顶了!'or path.pop() and ' '))\
          or (choice in path[-1] and (path.append(path[-1][choice]) or ' ')) \
          or '地址输入错误!''
相关标签: python 打印菜单