Python学习之day02---学习创建三级级联菜单

1、要求使用"key-value"字典,创建一个三级级联菜单,每个菜单下面包含相应的子菜单:例如:map ={ '山东省':{"济南":{"高新区":["科技园","会展中心"]}}}

2、要求可以逐级菜单进行返回上级菜单。

#  一、定义菜单内容

map_list ={
    '山东':{
        "济南":{
            "高新区":["银座","管委会"],
            "会展":["停车场","广场"]
        },
        "青岛":{
            "城阳区":["万达","后街"],
            "高新区":["科技馆","会展"]
        },
        "菏泽": {
            "曹县": ["万达", "后街"],
            "单县": ["科技馆", "会展"]
        }
    },
    '河南': {
        "郑州": {
            "高新区": ["银座", "管委会"],
            "会展": ["停车场", "广场"]
        },
        "洛阳": {
            "洛龙区": ["万达", "后街"],
            "高新区": ["科技馆", "会展"]
        },
        "商丘":{
            "市区": ["万达", "后街"],
            "高新区": ["科技馆", "会展"]
        },
    },
    '陕西': {
        "渭南": {
            "高新区": ["银座", "管委会"],
            "会展": ["停车场", "广场"]
        },
        "宝鸡": {
            "宝鸡区": ["万达", "后街"],
            "高新区": ["科技馆", "会展"]
        },
        "西安": {
            "市区": ["万达", "后街"],
            "高新区": ["科技馆", "会展"]
        },
    },
}

#  二、定义
while True:
    for menu_list in map_list:                                #定义一级联菜单,将已经完成级联的菜单传给新定义的数值menu_list
        print(menu_list)                                      #打印一级菜单
# -------------------------------------------------------------------------------打印第一层输出,打印省份    
    chose_list = input("选择进入1>>:")                        #将用户输入定义为chose_list
    if  chose_list in map_list:                               #判断用户输入,如果用户输入的数据在定义的字典里面,则为真
        while True:
            for menu_list1 in map_list[chose_list]:           #定义二级菜单menu_list1,如果用户输入的这个菜单在一级菜单里面,则进行打印
                print("\t",menu_list1)
# -------------------------------------------------------------------------------打印第二层输出,打印城市
            chose_list1 = input("选择进入2>>:")                #将用户输入定义为chose_list1
            if chose_list1 in map_list[chose_list]:            #判断用户输入,如果用户输入的数据在定义的字典里面,则为真
               while True:
                    for menu_list2 in map_list[chose_list][chose_list1]:    #定义三级菜单menu_list2,如果用户输入的这个菜单在二级菜单里面,则进行打印
                        print("\t\t",menu_list2)
# -------------------------------------------------------------------------------打印第三层输出,打印区县
                    chose_list2 = input("选择进入3>>:")                         #将用户输入定义为chose_list2
                    if chose_list2 in map_list[chose_list][chose_list1]:        #判断用户输入,如果用户输入的数据在定义的字典里面,则为真
                        for menu_list3 in map_list[chose_list][chose_list1][chose_list2]:            #定义三级菜单menu_list3,如果用户输入的这个菜单在一级、二级、三级菜单里面,则进行打印
                            print("\t\t\t",menu_list3)
# -------------------------------------------------------------------------------打印第三层区县里面所包含的具体地点事物
                        chose_list3 = input("最后一层,按b进行返回。>>:")        #判断用户是否需要返回,返回上一层级区县
                        if chose_list3 == 'b':
                            break
# -------------------------------------------------------------------------------添加判断,来进行确认终端用户是否想要返回上级菜单。也就是返回区县                           
                    if chose_list2 == 'b':                                            #判断用户是否返回
                        break
# -------------------------------------------------------------------------------添加判断,来进行确认终端用户是否想要返回上级菜单。也就是返回城市菜单
            if chose_list1 == 'b':                                                     #判断用户是否返回
                break
# -------------------------------------------------------------------------------添加判断,来进行确认终端用户是否想要返回上级菜单。也就是返回省份


猜你喜欢

转载自blog.51cto.com/eholog/2311425
今日推荐