码迷,mamicode.com
首页 > 其他好文 > 详细

省市区三级菜单查询小程序

时间:2016-05-13 07:28:13      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

注意事项:
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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!