menu={ '北京':{ '海淀':{ '五道口':{ '搜狐':{}, '网易':{}, 'Google':{}, }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, '优酷':{}, }, '上地':{ '百度':{}, }, }, '昌平':{ '沙河':{ '老男孩':{}, '北航':{}, }, '天通苑': {}, '回龙观': {}, }, '朝阳':{}, '东城':{} }, '上海':{ '闵行':{ '人民广场':{ '炸鸡店':{}, }, }, '闸北':{ '火车站':{ '携程':{}, }, }, '浦东':{} }, '山东':{ '德州':{}, '青岛':{}, '济南':{} } } exit_flag=False while not exit_flag: for i in menu: print(i) choice=input('>>选择进入1:') if choice in menu: while not exit_flag: for i2 in menu[choice]: print(' ',i2) choice2= input('>>选择进入2:') if choice2 in menu[choice]: while not exit_flag: for i3 in menu[choice][choice2]: print(' ', i3) choice3 = input('>>选择进入3:') if choice3 in menu[choice][choice2]: # while not exit_flag: # for i4 in menu[choice][choice2][choice3]: # print(' ',i4) # choice4=input('最后一层,按b返回>>:') # if choice4=='b': # break # elif choice4=='q': # exit_flag = True for i4 in menu[choice][choice2][choice3]: print(' ', i4) choice4=input('最后一层,按b返回>>:') if choice4 == 'b': pass#表示什么也不做,仅仅是为了不出错,是个占位符 elif choice4=='q': exit_flag=True # 以上7行可以有以上注释的8行进行替换,效果相同 if choice3 == 'b': break elif choice3 == 'q': exit_flag = True if choice2 == 'b': break elif choice2 == 'q': exit_flag = True