需求: 可依次选择进入各子菜单 可从任意一层往回退到上一层 可从任意一层退出程序 所需新知识点:列表、字典
menu = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} }, '中关村': { '爱奇艺': {}, '汽车之家': {}, 'youku': {}, }, '上地': { '百度': {}, }, }, '昌平': { '沙河': { '老男孩': {}, '北航': {}, }, '天通苑': {}, '回龙观': {}, }, '朝阳': {}, '东城': {}, }, '上海': { '闵行': { "人民广场": { '炸鸡店': {} } }, '闸北': { '火车站': { '携程': {} } }, '浦东': {}, }, '山东': {}, } current_menu = menu previous_menu = [] while True: for m in current_menu: print(m) choice = input("请输入你想查询的城市,返回上级请输1,退出请输q") if choice in current_menu: previous_menu.append(current_menu) current_menu = current_menu[choice] elif choice == "1": if len(previous_menu) != 0: current_menu = previous_menu.pop() else: print("已是最顶层,无法再返回,请输入您要查询的城市,退出请输q") elif choice == "q": print("您已退出,谢谢使用!") break else: print("您输入的城市不正确,请重新输入,返回上级请输1,退出请输q") # 思路:后期要常用两个变量:当前层菜单和上级菜单,所以给这两个变量做个定义,以便后面调用。 # 1、打印顶级菜单,提示用户输入 2、用户输入后进行判断: # (1)用户输入名字在当前菜单里,则进入下一级 # (2)用户输入名字为1且上级菜单不为空时,返回上一级菜单 # (3)用户输入名字为q,退出程序