路飞学城——python开发集训——三级菜单作业

  • 数据结构:
    
    menu = {
        '北京':{
            '海淀':{
                '五道口':{
                    'soho':{},
                    '网易':{},
                    'google':{}
                },
                '中关村':{
                    '爱奇艺':{},
                    '汽车之家':{},
                    'youku':{},
                },
                '上地':{
                    '百度':{},
                },
            },
            '昌平':{
                '沙河':{
                    '老男孩':{},
                    '北航':{},
                },
                '天通苑':{},
                '回龙观':{},
            },
            '朝阳':{},
            '东城':{},
        },
        '上海':{
            '闵行':{
                "人民广场":{
                    '炸鸡店':{}
                }
            },
            '闸北':{
                '火车战':{
                    '携程':{}
                }
            },
            '浦东':{},
        },
        '山东':{},
    }
    
    需求:
    可依次选择进入各子菜单
    可从任意一层往回退到上一层
    可从任意一层退出程序
    所需新知识点:列表、字典
  • 踩分点:

    1.只用一个while循环,且整体代码量少于15行按完成需求/条—25分
    2.只用一个while循环,且整体代码量多于15行需求全部完成给90分
    3.其他情况按完成需求/条—20分

1

menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'Google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                '优酷': {}
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '通天苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            '人民广场': {
                '炸鸡店': {},
            },
        },
        '闸北': {
            '火车站': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}
while True:
    for k in menu:
        print(k)
    choice = input("输入地名进入菜单;输入b返回上一级菜单:输入q退出").strip()
    if choice in menu:
        while True:
            for k2 in menu[choice]:
                print (k2)
            choice2 = input("输入地名进入菜单;输入b返回上一级菜单:输入q退出:").strip()
            if choice2 in menu[choice]:
                while True:
                    for k3 in menu[choice][choice2]:
                        print(k3)
                    choice3 = input("输入地名进入菜单;输入b返回上一级菜单:输入q退出:").strip()
                    if choice3 in menu[choice][choice2]:
                            for k4 in menu[choice][choice2][choice3]:
                                print(k4)
                            choice4 = input("最后一级菜单,输入b返回上一级菜单:输入q退出:")
                            if choice4 == "b":
                                break
                            elif choice4 == "q":
                                exit()
                    elif choice3 == "b":
                        break
                    elif choice3 == "q":
                        exit()
            elif choice2 == "b":
                break
            elif choice2 == "q":
                exit()

2,升级版

menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车战': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}
temp = menu
layers = []
while True:
    for k in temp:
        print (k)
    choice = input(">").strip()
    if not choice: continue
    if choice in temp:
        layers.append(temp)
        temp = temp[choice]
    elif choice == 'b':
        if len(layers) != 0:
            temp = layers.pop()
        else:
            print ("顶层")
    elif choice == 'q':
        exit()

猜你喜欢

转载自www.cnblogs.com/andydong/p/9229828.html
今日推荐