• 三级菜单


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

    堆栈写法:
    l=[menu]
    while l:for key in l[-1]:print(key)
        k=input('>>>').strip()
        if k in l[-1].keys() and l[-1][k]:
            l.append(l[-1][k])
        elif k=='b':
            l.pop()
        elif k=='q':
            break
        else:
            continue

    递归方法:

    def threeLM(dic):
        while True:
            for k in dic:
                print(k) #北京 上海 山东
            key = input('input>>').strip()
            if key == 'b' or key == 'q':
                return key
            elif key in dic.keys() and dic[key]:
                ret = threeLM(dic[key]) #调用
                if ret == 'q': return 'q'
    
    threeLM(menu)





































































  • 相关阅读:
    狐狸和兔子
    Arguments to main
    strncpy
    atoi
    sscanf
    集体的智慧:为什么SaaS打败企业软件?
    终于来热风了,又一次感觉到什么叫温暖!
    博士生的毕设
    淡淡的
    endnote如何修改输出格式?
  • 原文地址:https://www.cnblogs.com/yangyuqing/p/9849501.html
Copyright © 2020-2023  润新知