重新写了一边三级菜单,加了一些自己的理解
menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youku':{}, }, '上地':{ '百度':{}, }, }, '昌平':{ '沙河':{ '老男孩':{}, '北航':{}, }, '天通苑':{}, '回龙观':{}, }, '朝阳':{ '群众':{}, '门径':{} }, '东城':{ 'txet':{}, 'txet2':{} }, }, '上海':{ '闵行':{ "人民广场":{ '炸鸡店':{} } }, '闸北':{ '火车战':{ '携程':{} } }, '浦东':{ '大桥':{}, '小乔':{} }, }, '山东':{ '青岛':{ '市南':{}, '市北':{}, '胶州':{} }, '济南':{ '背带盒子':{}, '趵突泉':{}, '十字路口':{} }, '潍坊':{ '风筝':{}, '火车站':{}, '萝卜':{}, '驾照':{} } }, } ''' 首先打印出来第一层菜单 然后让用户选择菜单 如果选择的选项在里边,就循环打印第二层菜单 然后继续选择,如果选择的在就打印第三层菜单,然后需要打印出提示,最底层,让用户选b,退菜单 #这里的‘让’子其实也是inpu!!!!!!! 然后跟eilf选项,直接q出去 ''' flag =False while not flag: for i1 in menu: print(i1) chose1=input('请选择》1') if chose1 in menu: while not flag: for i2 in menu[chose1]: #有chose1层后,就开始for menu[chose1],同理下边有chose2的时候,for才有menu[chose2] print(i2) chose2 = input('请选择》2') if chose2 in menu[chose1]: #men[chose1]其实就是现实“请选择》2”的内容,这里需要理解一下。 while not flag: for i3 in menu[chose1][chose2]: print(i3) chose3 = input('请选择》3') if chose3 in menu[chose1][chose2]: for i4 in menu[chose1][chose2][chose3]: print(i4) chose4= input('最后一层,按b或者q') #我在这里忘记加chose4了,chose4是最后一层的显示,不能只打印一句话, if chose4 =='b': pass #这里要用pass elif chose4 =='q': flag=True if chose3 == 'b': break #这里用break elif chose3 =='q': flag=True if chose2 == 'b': break elif chose2 =='q': flag=True if chose1 =='b': break elif chose1 =='q': flag=True