python三级菜单

# Author:Sooele
data = {
    '北京':{
        "昌平":{
            "沙河":["oldboy","test"],
            "天通苑":["链家地产","我爱我家"]
        },
        "朝阳":{
            "望京":["奔驰","陌陌"],
            "国贸":{"CICC","HP"},
            "东直门":{"Advent","飞信"},
        },
        "海淀":{},
    },
    '山东':{
        "德州":{},
        "青岛":{},
        "济南":{}
    },
    '广东':{
        "东莞":{},
        "常熟":{},
        "佛山":{},
    },
}
exit_flag = False
while not exit_flag:
    for i in data: #L1
        print(i)
    choice = input("选择进入1》》:")
    if choice in data:#判断是否在L1
        while not exit_flag:#L1就执行下面
            for i2 in data[choice]:#L2
                print("\t",i2)#L2列表
            choice2 = input("选择进入2》》:")
            if choice2 in data[choice]:#判断是否在L2
                while not exit_flag:#L2执行下面
                    for i3 in data[choice][choice2]:#L3
                        print("\t", i3)#L3列表
                    choice3 = input("选择进入3》》:")
                    if choice3 in data[choice][choice2]                        for i4 in data[choice][choice2][choice3]:
                            print("\t\t",i4)
                        choice4 = input("最后一层,按b返回》》:")
                        if choice4 =="b":#如果cho4=b就返回上一层
                            pass
                        elif choice4 == "q":#如果cho4=q就退出
                            exit_flag = True
                    elif choice3 == "q":#如果cho3=q就退出
                        exit_flag = True
                    if choice3 == "b":#如果cho3=b就返回上一层
                        break
            elif choice2 == "q":#如果cho2=q就退出
                exit_flag = True
            if choice2 == "b":#如果cho2=b就返回上一层
                break