python练习题:多级菜单(dict练习)

2018-06-18 01:13:42来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

menu = {
    '北京':{
        '海淀':{
            '五道口':{
                'soho':{},
                '网易':{},
                'google':{}
            },
            '中关村':{
                '爱奇艺':{},
                '汽车之家':{},
                'youku':{},
            },
            '上地':{
                '百度':{},
            },
        },
        '昌平':{
            '沙河':{
                '北航':{},
            },
            '天通苑':{},
            '回龙观':{},
        },
        '朝阳':{},
        '东城':{},
    },
    '上海':{
        '闵行':{
            "人民广场":{
                '炸鸡店':{}
            }
        },
        '闸北':{
            '火车战':{
                '携程':{}
            }
        },
        '浦东':{},
    },
    '山东':{},
}



current_layer = menu # 存放当前节点
pre_layer=[] #存放前面的节点数据

while True:
    for i in current_layer:
        print(i)
    user_opt = input(">>").strip()
    if user_opt == None:
        continue
    elif user_opt == "q":
        exit()
    elif user_opt == "b":
        if current_layer == menu:#若当前节点已是最顶层节点,则不回退
            continue
        else:
            current_layer = pre_layer.pop()#回退一级,上一级节点变成当前节点
    elif user_opt in current_layer:
        pre_layer.append(current_layer)#前进一级,当前节点变为上一级节点
        current_layer = current_layer[user_opt]#下一级节点变为当前节点

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:芝麻HTTP:非关系型数据库存储

下一篇:武道之路-炼体期五重天中期