第一章练习题三级菜单

需求:
可依次选择进入各子菜单
可从任意一层往回退到上一层
可从任意一层退出程序
所需新知识点:列表、字典
menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车站': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}
current_menu = menu
previous_menu = []
while True:
    for m in current_menu:
        print(m)
    choice = input("请输入你想查询的城市,返回上级请输1,退出请输q")
    if choice in current_menu:
        previous_menu.append(current_menu)
        current_menu = current_menu[choice]
    elif choice == "1":
        if len(previous_menu) != 0:
            current_menu = previous_menu.pop()
        else:
            print("已是最顶层,无法再返回,请输入您要查询的城市,退出请输q")
    elif choice == "q":
        print("您已退出,谢谢使用!")
        break
    else:
        print("您输入的城市不正确,请重新输入,返回上级请输1,退出请输q")

#  思路:后期要常用两个变量:当前层菜单和上级菜单,所以给这两个变量做个定义,以便后面调用。
#  1、打印顶级菜单,提示用户输入   2、用户输入后进行判断:
# (1)用户输入名字在当前菜单里,则进入下一级
# (2)用户输入名字为1且上级菜单不为空时,返回上一级菜单
# (3)用户输入名字为q,退出程序

猜你喜欢

转载自www.cnblogs.com/51zf/p/9185233.html