Python从零开始 day6之补充
2018-12-28 08:04:49来源:博客园 阅读 ()
今天优化了一下三级菜单的代码
两个版本:
一:分几次循环完成:
south_west={
'云南':{
'昆明':{'嵩明':{'杨林':[]},'五华区':[],'官渡区':[],'西山区':[]},
'曲靖':{'宣威':{'宛水':[]},'麒麟区':[],'陆良':[],'马龙':[],'富源':[]},
'大理':{'大理州区':{'古城区':'大理古城'}}
},
'贵州':{
'贵阳':{'观山湖区':{}},
'遵义':{'播州区':{}},
'六盘水':{'水城':{}}
},
'四川':{
'成都':{'天府新区':{}},
'绵阳':{'游仙区':{}},
'乐山':{'五通桥区':{}}
}
}
back_flag = False
exit_flag = False
while not back_flag and not exit_flag:
for key in south_west:
print(key)
choice = input('>>>:').strip()
if choice == 'B':
back_flag = True
if choice == 'Q':
exit_flag = True
if choice in south_west:
while not back_flag and not exit_flag:
for key1 in south_west[choice]:
print(key1)
choice1 = input('>>>:').strip()
if choice1 == 'B':
back_flag = True
if choice1 == 'Q':
exit_flag = True
if choice1 in south_west[choice]:
while not back_flag and not exit_flag:
for key2 in south_west[choice][choice1]:
print(key2)
choice2 = input('>>>:').strip()
if choice2 == 'B':
back_flag = True
if choice2 == 'Q':
exit_flag = True
if choice2 in south_west[choice][choice1]:
while not back_flag and not exit_flag:
for key3 in south_west[choice][choice1][choice2]:
print(key3)
choice3 = input('>>>:').strip()
if choice3 == 'B':
back_flag = True
if choice3 == 'Q':
exit_flag = True
if choice3 in south_west[choice][choice1][choice2]:
while not back_flag and not exit_flag:
for key4 in south_west[choice][choice1][choice2][choice3]:
print(key4)
choice4 = input('>>>:').strip()
print('last level!')
if choice4 =='B':
back_flag = True
if choice4 =='Q':
exit_flag = True
else:
back_flag = False
else:
back_flag = False
else:
back_flag = False
else:
back_flag = False
二、利用列表的特点,分别添加和删除,也就是先将上一层的数据保存到列表中待调用
south_west={
'云南':{
'昆明':{'嵩明':{'杨林':[]},'五华区':[],'官渡区':[],'西山区':[]},
'曲靖':{'宣威':{'宛水':[]},'麒麟区':[],'陆良':[],'马龙':[],'富源':[]},
'大理':{'大理州区':{'古城区':'大理古城'}}
},
'贵州':{
'贵阳':{'观山湖区':{}},
'遵义':{'播州区':{}},
'六盘水':{'水城':{}}
},
'四川':{
'成都':{'天府新区':{}},
'绵阳':{'游仙区':{}},
'乐山':{'五通桥区':{}}
}
}
current_layer = south_west
#parent_layer = []
parent_layers = []
while True:
for key in current_layer:
print(key)
chioce = input('>>>:').strip()
if len(chioce)==0:continue
if chioce in current_layer:
#parent_layer = current_layer #在进入下一层前,先将上一层记录下来(相当于是父级)
parent_layers.append(current_layer)
current_layer = current_layer[chioce] #进入下一层(相当于是子级)
elif chioce == 'b':
#current_layer = parent_layer #把父级赋值给子级
if parent_layers : #空列表返回False
current_layer = parent_layers.pop()
else:
print('无')
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Python02
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash