现在有如下城市选择菜单
需求为
递归实现的方法
menu = {
"河北": {
"石家庄": {
"长安区": {
},
"新华区": {
}
},
"保定": {
"莲池区": {
},
"涿州": {
}
}
},
"北京": {
"朝阳": {
"三里屯": {
},
"双井": {
}
},
"海淀": {
"中关村": {
},
"西北旺": {
}
}
},
"浙江": {
"杭州": {
"滨江": {
},
"余杭": {
}
},
"宁波": {
"海瞩": {
},
"江北": {
}
}
}
}
def select_menu(dic_menu):
while 1:
for one in dic_menu:
print(one)
msg = input(">>>").strip()
if msg.lower() == "back": return False
elif msg.lower() == "q": return True
elif dic_menu.get(msg):
flag = select_menu(dic_menu[msg])
if flag: return True
用栈来实现,这种实现方式很重要,掌握后可以用在很多场景中
def select_menu(dic_menu):
dic_list = [dic_menu]
while dic_list:
tmp = dic_list[-1]
for key in tmp:
print(key)
msg = input(">>>").strip()
if msg.lower() == "back": dic_list.pop()
elif msg.lower() == "q": break
elif tmp.get(msg):
dic_list.append(tmp[msg])