Python学习笔记-Lesson2

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

import sys
dic = {}
menu1 = [menu]
m = 'init'
for k0, v0 in enumerate(menu1):
dic[m] = {'previous': [], 'next': v0.keys()}
for k, v in v0.items():
print(k)
dic[k] = {'previous': m, 'next': v.keys()}
for k2, v2 in v.items():
dic[k2] = {'previous': k, 'next': v2.keys()}
for k3, v3 in v2.items():
dic[k3] = {'previous': k2, 'next': v3.keys()}
for k4 in v3.keys():
dic[k4] = {'previous': k3, 'next': []}


current_address = None

while 1:
next_address = input('你要去哪:(返回上一级:b 退出:q)')
if next_address == 'q':
print('下次再见')
sys.exit(0)

elif next_address not in dic.keys() and next_address != 'b':
print('请输入正确的地址')

elif next_address == 'b':
if not current_address:
print('请先进入一个地址')

elif not dic[current_address]['previous']:
print('已到第一级, 无法返回')
else:
current_address = dic[current_address]['previous']

else:
if not dic[next_address]['next']:
print('已到最下面一级了, 没东西了 !!!')
else:
current_address = next_address

if current_address:
for i in dic[current_address]['next']:
print(i)


二、一般在列表中查数据,我都习惯用for循环,在25号公开课上,李必胜老师分享了用in方法,非常省时,不用一直循环到最后一个元素,get到了知识点
三、字典这一块还不是很熟悉,需要再反复加强的练习学习,把列表存到字典里,方法很简单,但代码比较复杂

猜你喜欢

转载自www.cnblogs.com/penny0801/p/9230292.html
今日推荐