多级菜单

#@autor:THIRTEEN
#@date:2018.4.22 17:36

menu={
    "北京":{
        "朝阳":{
            "国贸":{
                "CICC":{},
                "CCTV":{},
            },
            "望京":{
                "陌陌":{},
                "360":{},
            },
            "三里屯":{
                "优衣库":{},
                "apple":{},
            },
        },
        "昌平":{
            "沙河":{
            },
            "天通苑":{
                "链家":{},
            },
            "回龙观":{
                
            },
        },
        "海淀":{
            "五道口":{
                "谷歌":{},
                "Sogo":{},
            },
            "中关村":{
                "QQ":{},
                },
        },
    },
    "上海":{
        "浦东":{
                "陆家嘴":{
                    "高盛":{},
                },
        },
    },
    "四川":{
        "达州":{
        
        },
        "成都":{
        
        },
    },
}

current_layer=menu #当前层
parent_list=[]
exit_falg=False

while not exit_falg:
    if len(current_layer)!=0:
        for key in current_layer:
            print(key)
        print()
        choice=input(">>>:").strip()
        if len(choice)==0:continue
        if choice in current_layer:
            parent_list.append(current_layer)#列表最后追加一个current_layer字典
            current_layer=current_layer[choice]
        elif choice =="b":
            if parent_list:
                current_layer=parent_list.pop()#回退是删除并返回parent_list的最后一个值
            else:
                print("已经到了第一层".center(50,"-"))
        elif choice =="q":
            exit_falg=True
        else:
            print("无此项!".center(50,"-"))
    else :
        print("到底了!【返回上一级:b】;【退出:q】".center(50,"-"))
        current_layer=parent_list.pop()

猜你喜欢

转载自blog.csdn.net/qq_38900796/article/details/80041419