遍历三级菜单--牛掰版本
Posted lidaxiong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遍历三级菜单--牛掰版本相关的知识,希望对你有一定的参考价值。
1 需求: 2 可依次选择进入各子菜单 3 可从任意一层往回退到上一层 4 可从任意一层退出程序 5 所需新知识点:列表、字典 6 ‘‘‘ 7 ‘‘‘ 8 思路: 9 1、菜单是分层的,进入每一层的方法一样: 10 用一个新的字典动态的表示当前层,遍历显示当前层,输入选择,判断进入下一层 11 2、用一个列表记录父层,当判断为返回时取出再次进入 12 3、进入下一层前需要把当当前成存档父层列表中,再把当前成换成选择的子层 13 4、遍历具有层级的字典都需要注意边界问题,有没有下一层、上一层 14 5、知识点:判断语句中空就是假,字典value空、列表空等, 15 ‘‘‘ 16 menu = { 17 ‘北京‘:{ 18 ‘海淀‘:{ 19 ‘五道口‘:{ 20 ‘soho‘:{}, 21 ‘网易‘:{}, 22 ‘google‘:{} 23 }, 24 ‘中关村‘:{ 25 ‘爱奇艺‘:{}, 26 ‘汽车之家‘:{}, 27 ‘youku‘:{}, 28 }, 29 ‘上地‘:{ 30 ‘百度‘:{}, 31 }, 32 }, 33 ‘昌平‘:{ 34 ‘沙河‘:{ 35 ‘老男孩‘:{}, 36 ‘北航‘:{}, 37 }, 38 ‘天通苑‘:{}, 39 ‘回龙观‘:{}, 40 }, 41 ‘朝阳‘:{}, 42 ‘东城‘:{}, 43 }, 44 ‘上海‘:{ 45 ‘闵行‘:{ 46 "人民广场":{ 47 ‘炸鸡店‘:{} 48 } 49 }, 50 ‘闸北‘:{ 51 ‘火车战‘:{ 52 ‘携程‘:{} 53 } 54 }, 55 ‘浦东‘:{}, 56 }, 57 ‘山东‘:{}, 58 } 59 60 61 if __name__ == ‘__main__‘: 62 #实现动态循环 63 current_layer = menu 64 #记录父层,最后一个总是当前层的父层 65 parrent_layer = [] 66 while True: 67 #遍历打印当前层,打印当前字典的keys 68 for i in current_layer: 69 print(i) 70 #获取输入 71 choice = input("请输入您的选择(返回输入b,退出输入q):").strip() 72 #判断输入的选择是否在当前层 73 if choice in current_layer: 74 #判断下一层是否为空,为空则表示已经最后一层了 75 if current_layer[choice]: 76 #进入子层前,把当前层作为父层,便于后面使用 77 parrent_layer.append(current_layer) 78 #把当前层换成进入后的子层 79 current_layer = current_layer[choice] 80 else: 81 print("已经是最后一层了!") 82 break 83 84 elif choice== ‘b‘: 85 #如果paarent_layer为空,则表示是第一层,无父层 86 if parrent_layer: 87 current_layer = parrent_layer.pop() 88 89 elif choice== ‘q‘: 90 break 91 else: 92 print("输入错误!")
以上是关于遍历三级菜单--牛掰版本的主要内容,如果未能解决你的问题,请参考以下文章