>>>低端版
menu={'山西': {'太原': {'迎泽':['柳巷','五一广场','太原站'], '小店':['山西财经大学','山西大学','武宿机场'], '晋源':['晋祠','蒙山大佛''山西省图书馆'] }, '吕梁': {'柳林':['联盛中学','龙花垣'], '离石':['东关','滨河路的疯狗'] }, '大同': {'南郊':['大同大学','方特'], '云冈':['云冈石窟'], } }, '北京': {'朝阳': {'国贸':['渣打银行','CCTV'], '望京':['陌陌','奔驰','360'], '三里屯':['优衣库','苹果'] }, '海淀': {'五道口':['清华','快手'], '中关村':['汽车之家','新东方'], }, '昌平': {'沙河':['老男孩','某鸟'], '天通苑':['链家'], '回龙观':['回龙观公园'] } }, '陕西': {'西安':{'未央区':['大明宫遗址公园','汉城湖旅游景区'], '长安区':['翠华山','杨虎城陵园'], }, '榆林':{'榆阳区':['世纪广场'], '吴堡县':['黄河大道'] } } } exit_flag=False while exit_flag==False: for key in menu: print(key) choice=input('>>请选择进入下一层或选择exit退出主菜单:').strip() if choice=='exit': break elif choice in menu: while exit_flag==False: for key2 in menu[choice]: print(key2) choice2=input('>>请选择进入下一层或者选择back返回上一层,选择exit退出主菜单:').strip() if choice2=='back': break elif choice2=='exit': exit_flag=True elif choice2 in menu[choice]: while exit_flag==False: for key3 in menu[choice][choice2]: print(key3) choice3=input('>>请选择进入下一层或选择back返回上一层,选择exit退出主菜单:').strip() if choice3=='back': break elif choice3=='exit': exit_flag=True elif choice3 in menu[choice][choice2]: for i in menu[choice][choice2][choice3]: print(i) while exit_flag==False: choice4=input('已到达最后一层,请选择back返回上一层或选择exit退出主菜单>>:').strip() if choice4=='back': break elif choice4 == 'exit': exit_flag = True
>>>高端版
menu={'山西': {'太原': {'迎泽':['柳巷','五一广场','太原站'], '小店':['山西财经大学','山西大学','武宿机场'], '晋源':['晋祠','蒙山大佛''山西省图书馆'] }, '吕梁': {'柳林':['联盛中学','龙花垣'], '离石':['东关'] }, '大同': {'南郊':['大同大学','方特'], '云冈':['云冈石窟'], } }, '北京': {'朝阳': {'国贸':['渣打银行','CCTV'], '望京':['陌陌','奔驰','360'], '三里屯':['优衣库','苹果'] }, '海淀': {'五道口':['清华','快手'], '中关村':['汽车之家','新东方'], }, '昌平': {'沙河':['老男孩','某鸟'], '天通苑':['链家'], '回龙观':['回龙观公园'] } }, '陕西': {'西安':{'未央区':['大明宫遗址公园','汉城湖旅游景区'], '长安区':['翠华山','杨虎城陵园'], }, '榆林':{'榆阳区':['世纪广场'], '吴堡县':['黄河大道'] } } } current_layer=menu #设置当前层的初始值为menu choiced_layer=[] #建立一个已选层列表 while True: for key in current_layer: print(key) #打印当前层信息 choice=input('>>>输入名字进入下一层,back返回上一层,exit退出:').strip() if choice in current_layer: choiced_layer.append(current_layer) #把当前层加入已选层列表 current_layer=current_layer[choice] #当前层进入已选下一层 elif choice=='back': if choiced_layer: #如果列表不为空,执行以下操作 current_layer = choiced_layer.pop() #将最后选择的层从已选层取出来,并赋给当前层 elif choice=='exit': break else: print('无此项')