标签:
注意事项:
1、用户根据程序提示选择对应的选项,输入无效会提示重新输入,选择q退出本程序
2、进入第三级菜单,仅有退出选项和返回上级菜单选项
3、当前程序最多打印至第三级目录,显示区一级菜单
#!/usr/bin/env python
#coding:utf-8
#Auto:Panwenbin
#function:
menu=[‘北京‘,‘上海‘]
bei_jing=[[‘大兴‘,[‘大兴一‘,‘大兴二‘]],[‘昌平‘,[‘昌平一‘,‘昌平二‘]]]
shang_hai=[[‘黄埔‘,[‘黄埔一‘,‘黄埔二‘]],[‘徐汇‘,[‘徐汇一‘,‘徐汇二‘]]]
######################################################################################################################
print(
‘‘‘
------------------------------------
+
+
+
+ \033[31m 欢迎进入全国地区查询系统 \033[0m
+
+
+
------------------------------------
‘‘‘
)
########################################################################################################################
def showzone(zonename,sheng_name1,shi_name1): #定义实现功能的函数
while True:
for i in range(len(zonename)):#获得用户选择一级区域的字区域个数
print(‘%d:%s‘%(i,zonename[i][0])) #打印一级子区域名称
shi_name=input(‘‘‘请选择需要查询的市或区:
按b返回上一级菜单,按q退出查询
‘‘‘)
if shi_name.isdigit(): #判断用户输入的是否为数字,如果是,转换为int类型
shi_name=int(shi_name)
if shi_name < len(zonename) and shi_name ==0: #判断用户输入的数字是否大于一级区域的个数,并判断用户选择的选项
for i in range(len(zonename[sheng_name][shi_name])):#使用形参zonename获取用户选择,根据用户输入的sheng_name和shi_name值,根据用户输入值得不同,打印不同的的区域
print (‘%d:%s‘%(i,zonename[sheng_name][shi_name1][i]))
elif shi_name < len(zonename) and shi_name ==1:
for i in range(len(zonename[sheng_name][shi_name])):
print (‘%d:%s‘%(i,zonename[sheng_name1][shi_name][i]))
elif shi_name ==‘q‘: #判断用户是否选择退出
exit()
elif shi_name==‘b‘:#判断用户是否选择返回上一级菜单
continue
else:
print(‘输入错误,请重新选择。\n‘ #当用户输入给定值之外的值,提示重新输入
‘按b返回上一级菜单,按q退出查询:‘)
con_or_brk=input(‘查询已结束,按b返回上一级菜单,按q退出查询:‘) #处于第三层菜单,无法继续向下选择,获取用户之后的操作。
if con_or_brk ==‘q‘: #判断用户是否选择退出
exit()
elif con_or_brk ==‘b‘:#判断用户是否选择返回上一级菜单
continue
else:
print(‘输入错误,请重新选择。\n‘
‘按b返回上一级菜单,按q退出查询:‘) #当用户输入给定值之外的值,提示重新输入
########################################################################################################################
while True:
for i in range(len(menu)):
print(‘%d:%s‘%(i,menu[i])) #打印一级菜单目录
sheng_name=input(‘请选择需要查询的省或直辖市,按q退出程序:‘)
if sheng_name.isdigit() and int(sheng_name) < len(menu): #判断用户输入的是否为数字,并且小于当前区域的个数,如果是,转换为int类型
sheng_name=int(sheng_name)
elif sheng_name==‘q‘:
break
else:
print(‘输入错误,请重新选择‘)
continue
if sheng_name < len(menu) and sheng_name ==0: #判断用户选择的一级区域是否有效,并且等于对应值,执行相应的操作
showzone(bei_jing,1,1)
elif sheng_name < len(menu) and sheng_name ==1:
showzone(shang_hai,0,1)
标签:
原文地址:http://www.cnblogs.com/panwenbin-logs/p/5484749.html