打印菜单(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 '地址输入错误!''