s12-day01-work02 python多级菜单展示
README
# README.md # day001-work-2 @南非波波 功能实现:多级菜单展示 流程图:
 程序实现: 1.文件说明:
main.py:主程序入口
welcome.py:程序首页展示内容
citylist.py:程序的字典内容
checkinput.py:检查用户输入是否符合规定,设置二三级菜单展示函数
2.设置功能函数:
welcome.WelcomeInfo():首页函数,调用checkinput.CheckInputOne(Choose)函数,根据用户输入返回相应值或者调用相应函数
welcome.GoBack(Choose):返回函数,该函数最终设计目标实现多级返回,但目前只实现返回到首页
checkinput.CheckInputOne(Choose):函数判断用户在第一次输入的值是否异常,根据用户输入情况进行相应值返回或者调用相应函数
checkinput.InputIfOne(Choose):调用checkinput.ShowInfo(Area)函数展示地区下面的省份,并且多层循环、遍历字典、列表展示二三层菜单。期间调用checkinput.ChooseInputTwo(Choose)函数进行用户输入的判断,并返回True|Flase值.
3.主函数入口:
import welcome
#main
if __name__ =="__main__":
welcome.WelcomeInfo() 代码地址: https://github.com/swht/projects/tree/master/day01/work-2 博客地址: http://www.cnblogs.com/songqingbo/p/5091830.html
README
流程图:
程序代码:
main.py
#!/usr/local/env python3
'''
Author:@swht
Blog:http://www.cnblogs.com/songqingbo/
E-mail:qingbo.song@gmail.com
'''
import welcome #main
if __name__ =="__main__":
welcome.WelcomeInfo()
main.py
welcome.py
#!/usr/local/env python3
'''
Author:@swht
Blog:http://www.cnblogs.com/songqingbo/
E-mail:qingbo.song@gmail.com
'''
import citylist
import checkinput
import sys,time
#登录欢迎界面
def WelcomeInfo():
for i in range(0,3):
Choose = input('''
===================================================
欢迎来到中国!
===================================================
[11]华北地区 [12]东北地区 [13]华东地区 [14]华中地区
[15]华南地区 [16]西南地区 [17]西北地区 [18]特别行政区
[19]退出
请选择相应指令:''').strip()
checkinput.CheckInputOne(Choose)
GoBack("地区") #错误次数已达3,程序退出
def GoBack(Choose):
if Choose == "地区":
print("你的输入错误次数已达3次,系统将退出!")
time.sleep(1)
sys.exit(1)
welcome.py
citylist.py
#!/usr/local/env python3
'''
Author:@swht
Blog:http://www.cnblogs.com/songqingbo/
E-mail:qingbo.song@gmail.com
''' CityList ={
"华北地区":{
"北京市":['东城区','西城区','崇文区','宣武区','朝阳区','丰台区','石景山区','海淀区','门头沟区','房山区','通州区','顺义区','昌平区','大兴区','怀柔区','平谷区','密云县','延庆县'],
"天津市":['和平区', '河东区', '河西区', '南开区', '河北区', '红桥区', '塘沽区', '汉沽区', '大港区', '东丽区', '西青区', '津南区','北辰区', '武清区', '宝坻区', '宁河县', '静海县', '蓟县'],
"河北省":['石家庄市','秦皇岛市'],
"山西省":['太原市','大同市'],
"内蒙古自治区":['呼和浩特市','包头市']
},
"东北地区":{
"辽宁省":["铁岭市","阜新市","朝阳市","沈阳市"],
"吉林省":['长春市','吉林市','辽源市'],
"黑龙江省":['哈尔滨市','齐齐哈尔市']
},
"华东地区":{
"上海市":["浦东新区","长宁区","宝山区","青浦区"],
"江苏省":['南京市','徐州市'],
"浙江省":['杭州市','宁波市'],
"安徽省":['合肥市','淮南市'],
"福建省":['福州市','厦门市'],
"江西省":['南昌市','景德镇市'],
"山东省":["济南市","青岛市","潍坊市","德州市"]
},
"华中地区":{
"河南省":['郑州市','洛阳市'],
"湖北省":['武汉市','荆门市'],
"湖南省":['长沙市','株洲市']
},
"华南地区":{
"广东省":['广州市','深圳市'],
"海南省":['海口市','三亚市','五指山市', '琼海市', '儋州市', '文昌市', '万宁市', '东方市'],
"广西壮族自治区":['南宁市','桂林市']
},
"西南地区":{
"重庆市":['渝中区', '大渡口区', '江北区', '沙坪坝区', '九龙坡区', '南岸区', '北碚区', '万盛区', '双桥区', '渝北区'],
"四川省":['成都市','自贡市'],
"贵州省":['贵阳市','遵义市'],
"云南省":['昆明市','保山市'],
"西藏自治区":['拉萨市','昌都地区']
},
"西北地区":{
"陕西省":['西安市','宝鸡市'],
"甘肃省":['兰州市','天水市'],
"青海省":['西宁市','玉树州'],
"宁夏回族自治区":['银川市','石嘴山市'],
"新疆维吾尔自治区":['乌鲁木齐市','克拉玛依市']
},
"特别行政区":{
"香港特别行政区":['中西区', '东区', '九龙城区', '观塘区', '南区', '深水埗区', '黄大仙区', '湾仔区', '油尖旺区', '离岛区', '葵青区', '北区', '西贡区', '沙田区', '屯门区', '大埔区', '荃湾区', '元朗区'],
"澳门特别行政区":[],
"台湾省":['台北市', '高雄市', '基隆市', '台中市', '台南市', '新竹市', '嘉义市']
}
}
citylist.py
checkinput.py
#!/usr/local/env python3
'''
Author:@swht
Blog:http://www.cnblogs.com/songqingbo/
E-mail:qingbo.song@gmail.com
'''
import welcome,citylist
import sys,time #一级菜单输入字段判断
def CheckInputOne(Choose):
if Choose == '':
print("指令不能为空,请输入正确指令!")
else:
if Choose.isdigit():
Choose = int(Choose)
if Choose >= 11 and Choose <= 19:
InputIfOne(Choose)
else:
print("你输入的指令已超出范围,请按照系统指令进行输入!")
else:
print("请输入正确的指令,指令为整数型数字!") def InputIfOne(Choose):
if Choose == 11:
ShowInfo("华北地区")
if Choose == 12:
ShowInfo("东北地区")
if Choose == 13:
ShowInfo("华东地区")
if Choose == 14:
ShowInfo("华中地区")
if Choose == 15:
ShowInfo("华南地区")
if Choose == 16:
ShowInfo("华南地区")
if Choose == 17:
ShowInfo("西北地区")
if Choose == 18:
ShowInfo("特别行政区")
if Choose == 19:
print("欢迎下次再来中国!")
time.sleep(1)
sys.exit(0) #二级、三级菜单输入字段判断
def ChooseInputTwo(Choose):
if Choose == '':
print("指令不能为空,请输入正确指令!")
else:
if Choose.isdigit():
return True
elif Choose == 'back' or Choose == 'Back' or Choose == 'BACK':
return False
else:
# print("你输入的指令已超出范围,请按照系统指令进行输入!")
pass
#二级、三级菜单显示
def ShowInfo(Area):
#显示省份
for i in range(0,3): #允许用户最大错误次数3次
print('''
===================================================
欢迎来到%s!
==================================================='''% Area)
# citylist.CityList[Area].keys() 获取地区里面的省份键值
Count = 0
for index,key in enumerate(citylist.CityList[Area].keys()): #python3中citylist.CityList[Area].keys()输出的是dict_keys对象
Count += 1
print("\t\t\t序号:%s\t省份:%s" % (index,key))
Choose1 = input("\t\t请选择相应序号进入相应省份!返回上级菜单[Back]:").strip()
ChooseInputTwo(Choose1)
if ChooseInputTwo(Choose1) == True:
Choose1 = int(Choose1)
if Choose1 >= 0 and Choose1 < Count:
#python3中将dict_keys转换成列表再做索引
#python2中dict.keys()的输出对象就是一个列表,可以直接进行索引操作
#KeyOne = citylist.CityList[Area].keys()[Choose1]
KeyOne = list(citylist.CityList[Area].keys())[Choose1] #获取省份keys
#显示城市
for i in range(0,3): #允许用户最大错误次数3次
Count = 0
print('''
===================================================
欢迎来到%s!
===================================================''' % KeyOne)
for index,key in enumerate(citylist.CityList[Area][KeyOne]):
Count += 1
print("\t\t\t序号:%s\t城市地区:%s" % (index,key))
Choose2 = input("\t\t请选择相应序号进入相应城市地区!返回上级菜单[Back]:").strip()
ChooseInputTwo(Choose2)
if ChooseInputTwo(Choose2) == True:
Choose2 = int(Choose2)
if Choose1 >= 0 and Choose2 < Count:
KeyTwo = citylist.CityList[Area][KeyOne][Choose2] #获取地区名称
print("\t\t哈哈,到头了!\t\t%s" % KeyTwo)
print("\t\t穿越到上一级菜单喽......")
time.sleep(1)
break
else:
print("你输入的指令不在范围内!")
time.sleep(1)
continue
elif ChooseInputTwo(Choose2) == False:
print("\t\t系统将返回上一级菜单!")
time.sleep(1)
break #跳出当前一级循环
else:
print("你是输入有误,请重新输入!")
time.sleep(1)
continue
print("你的输入次数已达三次,系统返回上一级菜单!")
else:
print("你输入的指令不在范围内!")
time.sleep(1)
continue #跳出当前循环
elif ChooseInputTwo(Choose1) == False:
welcome.WelcomeInfo() #首页
else:
print("你的输入有误,请重新输入!")
print("你的输入次数已达三次,系统将返回首页!")
welcome.WelcomeInfo()
checkinput.py
github更新地址:
https://github.com/swht/projects/tree/master/day01/work-2
s12-day01-work02 python多级菜单展示的更多相关文章
- Python多级菜单
作业2:多级菜单三级菜单可依次选择进入各子菜单所需新知识点:列表.字典 1.流程图 2.登录界面,输入对应索引 #!/usr/bin/env python3 # -*- coding:utf-8 -* ...
- python 多级菜单 纯循环与分支
源代码: dic1 = {'湖南':{'衡阳':{'珠晖区':'湖南工学院'},'湘潭':{'晖晖':'啦啦'}}, '北京':{'朝阳': {"德玛:北京大学"}}}print( ...
- flex 布局 实现电商网页菜单的多级分类展示
用flex,实现多级菜单分类展示,这里记录一下,方便以后查阅. 效果展示如下: 跟上面floor的设计差不多,鼠标hover全部商品分类的时候,将下拉列表展示在指定区域,这个类似鼠标悬浮商品图片期待上 ...
- django权限二(多级菜单的设计以及展示)
多级权限菜单设计级标题栏 我们现在只有数据展示,要进入其他url还需要手动的输入路径,非常的麻烦,所以我们要设计 一个导航栏以及侧边多级菜单栏,这个展示是通过stark组件的设计的增删改查页面,而 每 ...
- python作业设计:多级菜单,并可依次进入各级子菜单
'''作业三:多级菜单 三级菜单 可依次选择进入各子菜单 所需新知识点:列表.字典 ''' data = { "北京":{ "昌平":{ "沙河&qu ...
- Python练习----多级菜单
多级菜单要求: 1.三级菜单 2.可依次选择进入各子菜单 3.可以返回上一层 4.输入'q'可以退出 脚本: zone = { '北京' : { ' ...
- Python作业之多级菜单
作业之多级菜单 菜单实现要求: 1. 列出菜单选择供选择 2. 选择对应内容进入下一级菜单 3. 任何时候都可以选择退出程序或返回上一级菜单 具体代码如下: goods = {'华为':{'A系':{ ...
- Python简单实现多级菜单
# -*- coding: utf-8 -*- # @Time : 2018-06-01 13:40 # @Author : 超人 # @Email : huxiaojiu111@gmail.com ...
- Python基础-小程序练习(跳出多层循环,购物车,多级菜单,用户登录)
一. 从第3层循环直接跳出所有循环 break_flag = False count = 0 while break_flag == False: print("-第一层") wh ...
随机推荐
- [Java]-Java的版本演化
一.Java SE 8 Java SE 8发行于2014年3月18日,代号culture,这是一个在Java历史上的重大发布 Java SE 8 新特性: Lambda Expressions(Lam ...
- Hadoop部署方式-完全分布式(Fully-Distributed Mode)
Hadoop部署方式-完全分布式(Fully-Distributed Mode) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本博客搭建的虚拟机是伪分布式环境(https://w ...
- ReactiveCocoa内存管理
1.我们创建的管道是如何被保存的么? ReactiveCocoa设计的目的之一是允许这样一种编程样式,即管道可以匿名创建.到目前为止,我们的管道都是这么处理的.为了支持这种模式,ReactiveCoc ...
- angularJS__v1.5.6点击同一个菜单刷新
针对angularjs的1.0版本,点击菜单不刷新问题,只需在配置路由时,路由路径添加“/”,如,点击 标签时,就会刷新,
- 2017 清北济南考前刷题Day 1 afternoon
期望得分:80+30+70=180 实际得分:10+30+70=110 T1 水题(water) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK出了道水 ...
- C++ Rule of Three
Rule of Three The rule of three (also known as the Law of The Big Three or The Big Three) is a rule ...
- 环境变量ANDROID_SDK_HOME的作用
默认情况下,开发者创建的AVD(Android Virtual Device)存放在家目录的.android下. 如果是Linux,其路径就是 /home/<your_user_name> ...
- 2016-2017-20155329 《Java程序设计》第5周学习总结
学号 2016-2017-20155329 <Java程序设计>第5周学习总结 教材学习内容总结 Java中所有错误都会被打包为对象,运用try.catch,可以在错误发生时显示友好的错误 ...
- redis写定时任务获取root权限
前提: 1.redis由root用户启动. 2.开启cron的时候,/var/spool/cron linux机器下默认的计划任务,linux会定时去执行里面的任务. 启动服务 :/sbin/serv ...
- Django 创建第一个Project — Django学习(二)
检查django If Django is installed, you should see the version of your installation. If it isn’t, you’l ...