1 # -*- coding: utf-8 -*- 2 """ 3 可依次选择进入各子菜单 4 可从任意一层往回退到上一层 5 可从任意一层退出程序 6 """ 7 menu = {'北京': {'海淀': {'五道口': {'soho': {}, 8 '网易': {}, 9 'google': {}}, 10 '中关村': {'爱奇艺': {}, 11 '汽车之家': {}, 12 '优酷': {}}, 13 '上地': {'百度': {}}}, 14 '昌平': {'沙河': {'老男孩': {}, 15 '北航': {}}, 16 '天通苑': {}, 17 '回龙观': {}}, 18 '朝阳': {}, 19 '东城': {}}, 20 '上海': {'闵行': {'人民广场': {'炸鸡店': {}}}, 21 '闸北': {}, 22 '浦东': {}}, 23 '山东': {}} 24 25 26 while True: 27 for i in menu: 28 print(i) 29 level1 = input("请选择第一层,输入q表示退出:").strip() 30 if level1 == 'q': 31 break 32 elif level1 in menu: 33 while True: # 进入第二层 34 for i in menu[level1]: 35 print(i) 36 level2 = input("请选择第二层,输入q表示退出,输入p表示退到上一层:").strip() 37 if level2 == 'q': 38 exit() 39 elif level2 == 'p': 40 break 41 elif level2 in menu[level1]: 42 while True: # 进入第三层 43 for i in menu[level1][level2]: 44 print(i) 45 level3 = input("请选择第三层,输入q表示退出,输入p表示退到上一层:").strip() 46 if level3 == 'q': 47 exit() 48 elif level3 == 'p': 49 break 50 elif level3 in menu[level1][level2]: 51 for i in menu[level1][level2][level3]: 52 print(i) 53 print("到了最底层了,请退回上一层:") 54 quit = input("请输入q:") 55 exit()
1 # -*- coding: utf-8 -*- 2 """ 3 可依次选择进入各子菜单 4 可从任意一层往回退到上一层 5 可从任意一层退出程序 6 """ 7 menu = {'北京': {'海淀': {'五道口': {'soho': {}, 8 '网易': {}, 9 'google': {}}, 10 '中关村': {'爱奇艺': {}, 11 '汽车之家': {}, 12 '优酷': {}}, 13 '上地': {'百度': {}}}, 14 '昌平': {'沙河': {'老男孩': {}, 15 '北航': {}}, 16 '天通苑': {}, 17 '回龙观': {}}, 18 '朝阳': {}, 19 '东城': {}}, 20 '上海': {'闵行': {'人民广场': {'炸鸡店': {}}}, 21 '闸北': {}, 22 '浦东': {}}, 23 '山东': {}} 24 25 current_layer = menu 26 pro_layer = [] 27 while True: 28 for i in current_layer: 29 print(i) 30 choice = input("输入p表示返回上一次,q表示退出 >:").strip() 31 if not choice: continue 32 if choice in current_layer: 33 pro_layer.append(current_layer) 34 current_layer = current_layer[choice] 35 if len(current_layer) == 0: 36 print("-------已经是底层了--------") 37 current_layer = pro_layer.pop() 38 elif choice == 'q': 39 break 40 elif choice == 'p': 41 if len(pro_layer) != 0: 42 current_layer = pro_layer.pop() 43 else: 44 print("-------已经是顶层了-------") 45 else: 46 print("----------输入有误----------") 47 48 49 # 只能记住上一层 不能记住上上层 50 # current_layer = menu 51 # pro_layer = menu 52 # while True: 53 # for i in current_layer: 54 # print(i) 55 # choice = input("输入p表示返回上一次,q表示退出 >:").strip() 56 # if not choice: continue 57 # if choice in current_layer: 58 # pro_layer = current_layer 59 # current_layer = current_layer[choice] 60 # elif choice == 'q': 61 # break 62 # elif choice == 'p': 63 # current_layer = pro_layer 64 # else: 65 # print("----------输入有误----------")