Python三级菜单的实例
要求:
打印省、市、县三级菜单
可返回上一级
可随时退出程序
版本1
#_author:AhernLi
#@_date:2017/9/12
menu={
'浙江省':{
'杭州市':{
'余杭区':{'中泰':{},'临平':{}},
'西湖区':{'西湖':{},'留下':{}}
},
'温州市':{
'苍南县':{'灵溪':{},'龙港':{}},
'瑞安县':{'安阳':{},'锦湖':{}}
}
},
'广东省':{
'广州市':{
'越秀区':{'人民路':{},'北京路':{}},
'荔湾区':{'沙面':{},'龙津':{}}
},
'珠海市':{
'香洲区':{'拱北':{},'吉大':{}},
'金湾区':{'红旗镇':{},'平沙镇':{}}
}
}
}
#返回标记
q_flag=True
#退出标记
Q_flag=True
#返回,退出标记出现False退出循环
whileq_flagandQ_flag:
#遍历打印省份
foriinmenu:
print(i)
province=input('请输入要查找的省份(Q,退出):').strip()
ifprovinceinmenu:
whileq_flagandQ_flag:
foriinmenu[province]:
print(i)
city=input('请输入要查找的市(q,返回或Q,退出):').strip()
ifcityinmenu[province]:
whileq_flagandQ_flag:
foriinmenu[province][city]:
print(i)
county=input('请输入要查找的区或县(q,返回或Q,退出):').strip()
ifcountyinmenu[province][city]:
whileq_flagandQ_flag:
foriinmenu[province][city][county]:
print(i)
#提示最后一页,输入格式
choice=input('最后一页!q,返回或Q,退出:').strip()
ifchoice=='q':
#配合else:q_flag=True退出该层循环,返回上层循环
q_flag=False
elifchoice=='Q':
#退出大循环
Q_flag=False
else:
#提示输入不合法
print('输入错误!')
#改回q_flag的值,实现只退出一层循环
else:
q_flag=True
elifcounty=='q':
q_flag=False
elifcounty=='Q':
Q_flag=False
else:
print('输入错误!')
else:
q_flag=True
elifcity=='q':
q_flag=False
elifcity=='Q':
Q_flag=False
else:
print('输入错误!')
else:
q_flag=True
elifprovince=='Q':
Q_flag=False
else:
print('输入错误!')
版本2
#_author:AhernLi
#@_date:2017/9/12
menu={
'浙江省':{
'杭州市':{
'余杭区':{'中泰':{},'临平':{}},
'西湖区':{'西湖':{},'留下':{}}
},
'温州市':{
'苍南县':{'灵溪':{},'龙港':{}},
'瑞安县':{'安阳':{},'锦湖':{}}
}
},
'广东省':{
'广州市':{
'越秀区':{'人民路':{},'北京路':{}},
'荔湾区':{'沙面':{},'龙津':{}}
},
'珠海市':{
'香洲区':{'拱北':{},'吉大':{}},
'金湾区':{'红旗镇':{},'平沙镇':{}}
}
}
}
current_layer=menu#实现动态循环
parent_layer=[]#保留所有父层,最后一个元素永远为父层
whileTrue:
print()#仅为了打印美观
foriincurrent_layer:#遍历打印地址
print(i)
choice=input('请在下方输入查询地址\n>>>:').strip()
ifchoiceincurrent_layer:
ifcurrent_layer[choice]:#判断是否为末层
parent_layer.append(current_layer)#进入子层前,添加当前层作为父层
current_layer=current_layer[choice]#修改子层
else:
print('当前是最后一页')
elifchoice=='':
continue
elifchoice=='q':#返回上层
ifparent_layer:#判断parent_layer是否为空
current_layer=parent_layer.pop()#取出当前层父层
#退出循环
elifchoice=='Q':
break
else:
print('输入错误!')
以上这篇Python三级菜单的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。