首页 > 编程语言 > 详细

python学习基础篇--编写三级菜单

时间:2017-09-23 23:56:05      阅读:342      评论:0      收藏:0      [点我收藏+]
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#------------------------------------------------------
#制作一个三级菜单,要求:
#可以依次选择,进入到相应的菜单
#可以在任意层执行返回上一次或者退出
#-------------------------------------------------------
print("省市区县三级菜单展示")
dic= {
    陕西省:{
        西安市:[莲湖区,长安区,浐灞区,碑林区],
        渭南市:[临渭区,华州区,大荔县,蒲城县],
        汉中市:[汉台区,南郑区,城固县,西乡县],
    },
    浙江省:{
        杭州市:[西湖区,江干区,上城区,下城区],
        温州市:[鹿城区,龙湾区,瓯海区,洞头区],
        台州市:[椒江区,黄岩区,黄岩区,临海市],
    },
    河南省:{
        郑州市:[中原区,二七区,管城区,金水区],
        开封市:[鼓楼区,龙亭区,顺河区,祥符区],
        洛阳市:[涧西区,西工区,老城区,洛龙区],
    },
}
sheng_list=list(dic.keys()) #获取省列表
while True:
    print("".center(50,*))           #打印省标题栏,长度50,字符居中
    for i in sheng_list:
        print(sheng_list.index(i)+1,i)      #for循环读取省列表,并对读取的列表编号
    sheng_id=input("请输入省的编号,退出请输入q:")
    if sheng_id.isdigit():                  #判断输入的编号是否为数字
        sheng_id=int(sheng_id)              #对输入的编号取整
        if sheng_id >0 and sheng_id <=len(sheng_list):  #判断输入的编号是否大于零且小于等于省列表的长度
            sheng_name=sheng_list[sheng_id-1]             #获取省列表中的名字,列表中默认是从0开始,所以需要减1
            shi_list=list(dic[sheng_name].keys())          #获取市列表
            while True:
                print("".center(50,"*"))               #打印市标题栏,长度50,字符居中
                for i in shi_list:
                    print(shi_list.index(i)+1,i)            #for循环读取市列表,并对读取的列表编号
                shi_id=input("请输入市的编号,返回请输入b,退出请输入q:")
                if shi_id.isdigit():                         #判断输入的编号是否为数字
                    shi_id=int(shi_id)                           #对输入的编号取整
                    if shi_id >0 and shi_id<=len(shi_list):     #判断输入的编号是否大于零且小于等于省列表的长度
                        shi_name=shi_list[shi_id-1]              #获取市列表中的名字,列表中默认是从0开始,所以需要减1
                        xian_list=dic[sheng_name][shi_name]        #获取区县列表
                        while True:
                            print("区县".center(50,"*"))                #打印区县标题栏,长度50,字符居中
                            for i in xian_list:
                                print(xian_list.index(i)+1,i)             #for循环读取区县列表,并对读取的列表编号
                            back_or_quit=input("返回上一层请输入b,退出请输入q:")
                            if back_or_quit==b:                      #判断输入的字符是否等于字符b
                                break                                  #如果是,则结束本次循环,返回到上一个循环
                            elif back_or_quit==q:                    #判断输入的字符是否等于字符q
                                exit()                                  #如果是,则退出整个程序
                            else:
                                print("\033[31;1m非法输入!\033[0m")     #在县级目录输入非数字内容,则提示输入非法内容
                    else:
                        print("\033[31;1m编号%s不存在!\033[0m" %(shi_id))  #否则以红色字体醒目提示用户编号不存在
                elif shi_id==b:       #在市级目录输入b则返回到省级目录
                    break
                elif shi_id==q:
                    exit()               #在市级目录输入则q则退出程序
                else:
                    print("\033[31;1m非法输入!\033[0m")     #在市级目录输入非数字内容,则提示输入非法内容
        else:
            print("\033[31;1m编号%s不存在!\033[0m" %(sheng_id))  #在省级目录输入>0,<=3之外的数据,则提示输入不存在
    elif sheng_id==q:                  #在省级目录输入则q则退出程序,因为省级是第一个循环,所以break结束该循环就等同于退出程序
        break
    else:
        print("\033[31;1m非法输入!\033[0m")

 

python学习基础篇--编写三级菜单

原文:http://www.cnblogs.com/nayqiang/p/7583536.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!