# _*_ coding : _*_ # Author : 杨Jack """ File_name : my_second_homework Function :实现如下数据结构 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youku':{}, }, '上地':{ '百度':{}, }, }, '昌平':{ '沙河':{ '老男孩':{}, '北航':{}, }, '天通苑':{}, '回龙观':{}, }, '朝阳':{}, '东城':{}, }, '上海':{ '闵行':{ "人民广场":{ '炸鸡店':{} } }, '闸北':{ '火车站':{ '携程':{} } }, '浦东':{}, }, '山东':{}, } 需求: 可依次选择进入各子菜单 可从任意一层往回退到上一层 可从任意一层退出程序 所需新知识点:列表、字典 Date : 2017.7.26 """ dict = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} }, '中关村': { '爱奇艺': {}, '汽车之家': {}, 'youku': {}, }, '上地': { '百度': {}, }, }, '昌平': { '沙河': { '老男孩': {}, '北航': {}, }, '天通苑': {}, '回龙观': {}, }, '朝阳': {}, '东城': {}, }, '上海': { '闵行': { "人民广场": { '炸鸡店': {} } }, '闸北': { '火车站': { '携程': {} } }, '浦东': {}, }, '山东': {}, } dict_list = dict current_list = [] while True: print("* " * 30) print("\t\t\t\t\t三级菜单练习") print("* " * 30) print("可供选择的地名:") for i in dict_list: print(i) menu = input("请输入地名,返回请按【1】,退出请按【0】:") # 四种情况: # 1、输入正确的地名,返回下一级菜单 if menu in dict_list: print("%s 的下一级菜单:" % menu) current_list.append(dict_list) dict_list = dict_list[menu] # print(dict_list) # 2、输入数字1,根绝现场变量的情况给出提示或者返回上一级 elif menu == "1": # 现场变量为0时是最上层,返回提示信息 if len(current_list) == 0: print("- " * 30) print("已经是最上层,请输入地名,退出请按【0】") print("- " * 30) # 现场变量非0时,返回上一层 else: dict_list = current_list.pop() # 列表返回删除的最后一个元素,返回的是一个字典数值 # dict_list = current_list() # 类型不同,不可传递 print(dict_list) print("请输入地名,返回请按【1】,退出请按【0】:") # 3、输入数字0,退出系统 elif menu == "0": print("正在退出系统...\n已退出系统,欢迎下次使用!") break # 4、非法输入,给出提示并重复输入 else: print("您的输入有误,请重新输入!") continue # 参考网上部分程序 # current_menu = dict # previous_menu = [] # #print(current_menu) # while True: # for menu in current_menu: # print(menu) # choice = input("请输入你想查询的城市,返回上级请输1,退出请输q|Q:") # if choice in current_menu: # previous_menu.append(current_menu) # # print(current_menu) # # print(previous_menu) # current_menu = current_menu[choice] # # print(current_menu) # elif choice == "1": # if len(previous_menu) != 0: # current_menu = previous_menu.pop() # # current_menu = previous_menu() # else: # print("已是最顶层,无法再返回,请输入您要查询的城市,退出请输q") # elif choice == "q" or choice == "Q": # print("您已退出,谢谢使用!") # break # else: # print("您输入的城市不正确,请重新输入,返回上级请输1,退出请输q")
Python 三级菜单
最新推荐文章于 2022-12-16 14:03:37 发布