@TOC——递归函数
功能说明
1、三级菜单
2、可依次选择进入各子菜单,选择相应标签进入目录
3、输入b返回上级目录,q退出目录查询
程序如下:
menu={'中国':{'河北':{'石家庄':{},'邢台':{},'衡水':{}},
'北京':{'昌平':{},'海淀':{},'朝阳':{}},
'山西':{'太原':{},'大同':{},'运程':{}}},
'美国':{'纽约州':{'纽约市':{},'罗彻斯特':{},'水牛城':{}},
'加利福利亚州':{'洛杉矶':{},'好莱坞':{},'阿罕布拉':{}},
'宾夕法尼亚州':{'费城':{},'伯利恒':{},'华盛顿':{}}},
'澳大利亚':{'维多利亚州':{'墨尔本':{},'吉朗':{},'巴里迪':{}},
'西澳大利亚州':{'马扎尔':{},'柏斯':{},'费里曼图':{}},
'南澳大利亚州':{'阿德莱德':{},'内陆':{},'巴罗莎':{}}}}
#当前目录和下一级目录的就是字典中键和值的关系
'''按b键返回查询,按q键结束查询'''
def three_search(dic):
global flag
flag = 1
while True:
if flag==1:
for k in dic:print(k)
key=input('>>>').strip()#去除开头或结尾的空字符
if key=='b'or key=='q': #输入b返回查询,输入q彻底结束查询
flag=1
return key
elif key in dic.keys() :
flag=1
if dic.get(key, 0) == {}:
print('null')
flag = 0
ret=three_search(dic[key])#精髓:通过递归取出键的值,即进入下一级目录
if ret=='q':
return 'q'
three_search(menu)
效果如下:
1、进入各级菜单
2、返回上一级菜单
**
3、直接退出目录查询
希望可以帮助到大家,感谢大家的支持!