python-------------三级菜单

# -*- coding: utf-8 -*-
# Author   :Gogh
# @Time       :2017/10/31 15:57
# @Email   :361910002@qq.com
# 三级菜单的操作
menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车战': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}

current_layer = menu
parent_layers = []  # 保存所有父级,最后一个元素永远都是父级
while True:
    for k in current_layer:
        print(k)
    choice = input(">>>:").strip()
    if len(choice) == 0: continue
    if choice in current_layer:
        parent_layers.append(current_layer)  # 在进入下一层之前,把当前层的(也就是下一层父级)追加到列表中
        # 下一次loop,当用户选择b的时候,就可以直接取列表最后一个值出来
        current_layer = current_layer[choice]  # 改成了子层
    elif choice == "b":
        if parent_layers:
            current_layer = parent_layers.pop()  # 取出列表的最后一个值,因为它就是当前层的父级
    else:
        print("无此项!")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值