#!/user/bin/python # -*- coding:utf-8 -*- # _author: wenrouge # 作业2:三级菜单 # 数据结构: # menu = { # '北京':{ # '海淀':{ # '五道口':{ # 'soho':{}, # '网易':{}, # 'google':{} # }, # '中关村':{ # '爱奇艺':{}, # '汽车之家':{}, # 'youku':{}, # }, # '上地':{ # '百度':{}, # }, # }, # '昌平':{ # '沙河':{ # '老男孩':{}, # '北航':{}, # }, # '天通苑':{}, # '回龙观':{}, # }, # '朝阳':{}, # '东城':{}, # }, # '上海':{ # '闵行':{ # "人民广场":{ # '炸鸡店':{} # } # }, # '闸北':{ # '火车站':{ # '携程':{} # } # }, # '浦东':{}, # }, # '山东':{}, # } # # 需求: # 可依次选择进入各子菜单 # 可从任意一层往回退到上一层 # 可从任意一层退出程序 # 所需新知识点:列表、字典 menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youku':{}, }, '上地':{ '百度':{}, }, }, '昌平':{ '沙河':{ '老男孩':{}, '北航':{}, }, '天通苑':{}, '回龙观':{}, }, '朝阳':{}, '东城':{}, }, '上海':{ '闵行':{ "人民广场":{ '炸鸡店':{}, } }, '闸北':{ '火车战':{ '携程':{}, } }, '浦东':{}, }, '山东':{}, } run_flag = True corrent_layer = menu layer = [] while run_flag: for i in corrent_layer: print(i) choice = input("请输入你选择的地址(也可以输入b上一层,q退出):") if choice in corrent_layer: layer.append(corrent_layer.keys()) corrent_layer = corrent_layer[choice] # print(layer) elif choice == 'b': if len(layer) != 0: corrent_layer = layer.pop() # print(layer) else: pass elif choice == 'q': run_flag = False else: print('请正确输入!') 版本二 update_menu = menu # 定义临时保存菜单的变量 menu_list = [] # 定义存储每次菜单更新的列表 while True: print('-------- ' + str(list(update_menu.keys())) + '---------') input_choose = input("【b(B)返回,q(Q)退出】请输入你的选择:").strip() if input_choose in update_menu: menu_list.append(update_menu) # 把整个菜单(字典)当做一个列表元素存储 update_menu = update_menu[input_choose] # 更新菜单 elif input_choose.lower() == 'b': if menu_list: # 如果列表不为空 update_menu = menu_list.pop() # 将列表的最后一个元素(即上一个菜单状态)弹出 elif input_choose.lower() == 'q': break else: print("输入错误,请重新输入")
---
转载请注明本文标题和链接:《Python第十六天 :三级菜单》
发表评论