重新写了一边三级菜单,加了一些自己的理解

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

 

原文地址:https://www.cnblogs.com/PYlog/p/8604373.html