菜单功能读取并减少代码重复

#!/usr/bin/env python
# _*_ coding=utf-8 _*_
__author__ = "zwp"

menu = {
'北京':{
"昌平":{
"沙河":{"oldboy":"test"},
"天通苑":{"链家地产":"我爱我家"}
},
"朝阳":{
"望京":{"奔驰":"陌陌"},
"国贸":{"CICC":"HP"},
"东直门":{"Advent":"飞信"},
},
"海淀":{},
},
'山东':{
"德州":{},
"青岛":{},
"济南":{}
},
'广东':{
"东莞":{},
"汕头":{
"潮南":{
"仙城":{
"新联":{}
},
"峡山":{}
},
"潮阳":{}
},
"佛山":{}
},
}

level = []
while True:
for key in menu:
print(key)
choice = input("choice>>>: ").strip()
if choice == 'b': #返回
if len(level) == 0:break
menu = level[-1] #通过拉取列表中最后一个读取到的字典
level.pop() #并同时删除读取到的最后一个字典,实现返回的功能。
if len(choice) == 0 or choice not in menu:continue
level.append(menu) #将字典加入列表中
menu = menu[choice] #重新赋值,将选择的values重新替换成menu字典,作为初始字典来重新读取

执行结果图:
 
原文地址:https://www.cnblogs.com/UncleZhao/p/8116762.html