数据结构:menu = { ‘北京‘:{ ‘海淀‘:{ ‘五道口‘:{ ‘soho‘:{}, ‘网易‘:{}, ‘google‘:{} }, ‘中关村‘:{ ‘爱奇艺‘:{}, ‘汽车之家‘:{}, ‘youku‘:{}, }, ‘上地‘:{ ‘百度‘:{}, }, },
数据结构: menu = { ‘北京‘:{ ‘海淀‘:{ ‘五道口‘:{ ‘soho‘:{}, ‘网易‘:{}, ‘google‘:{} }, ‘中关村‘:{ ‘爱奇艺‘:{}, ‘汽车之家‘:{}, ‘youku‘:{}, }, ‘上地‘:{ ‘百度‘:{}, }, }, ‘昌平‘:{ ‘沙河‘:{ ‘老男孩‘:{}, ‘北航‘:{}, }, ‘天通苑‘:{}, ‘回龙观‘:{}, }, ‘朝阳‘:{}, ‘东城‘:{}, }, ‘上海‘:{ ‘闵行‘:{ "人民广场":{ ‘炸鸡店‘:{} } }, ‘闸北‘:{ ‘火车站‘:{ ‘携程‘:{} } }, ‘浦东‘:{}, }, ‘山东‘:{}, }
基础需求:75% 1. 可依次选择进入各子菜单 2. 可从任意一层往回退到上一层 3. 可从任意一层退出程序 所需新知识点:列表、字典 升级需求:10% 1. 使用一个while循环,且整体代码量不超过15行
下面是拓扑图
然后是代码,这次代码的主要问题是变量名起的意义不大,要求都已经实现
1.可依次选择进入各子菜单
2. 可从任意一层按n往回退到上一层
3. 可从任意一层按q退出程序
请在pychrom里面运行
请按照程序提醒输入,不然要重新输入
#!./usr/bin/env.python3# _*_ coding:_utf-8 _*_# .Date:.2019/3/25menu = { ‘北京‘:{ ‘海淀‘:{ ‘五道口‘:{ ‘soho‘:{}, ‘网易‘:{}, ‘google‘:{} }, ‘中关村‘:{ ‘爱奇艺‘:{}, ‘汽车之家‘:{}, ‘youku‘:{}, }, ‘上地‘:{ ‘百度‘:{}, }, }, ‘昌平‘:{ ‘沙河‘:{ ‘老男孩‘:{}, ‘北航‘:{}, }, ‘天通苑‘:{}, ‘回龙观‘:{}, }, ‘朝阳‘:{}, ‘东城‘:{}, }, ‘上海‘:{ ‘闵行‘:{ "人民广场":{ ‘炸鸡店‘:{} } }, ‘闸北‘:{ ‘火车站‘:{ ‘携程‘:{} } }, ‘浦东‘:{}, }, ‘山东‘:{},}count = menu # 开始把字典赋值,但是这个是一个动态的,并count_1 = [] # 创建一个列表,处理返回选项while True: for bq in count: # 把动态值赋给给bp print(bq) name = input("请问您要查询哪里呢!!退出请按(q)返回上一级请按(n): ").strip() if name in count: # 在字典中搜索输入值 count_1.append(count) # 找到后执行,把动态值追加列表count_1里面 count = count[name] # 重新赋值下级列表给count elif name == "n": if count_1: count = count_1.pop() # 把列表后面追加的值删掉后,重新赋值给count elif name == "q": break else: print("输入错误,请重新输入")