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 ...
随机推荐
- Redis配置及使用
1.参考资料 在线命令说明: http://doc.redisfans.com/ redis安装列表: https://github.com/rgl/redis/downloads Redis工具使用 ...
- bzoj千题计划125:bzoj1037: [ZJOI2008]生日聚会Party
http://www.lydsy.com/JudgeOnline/problem.php?id=1037 一个区间是否满足 任意连续的一段,男孩与女孩的数目之差不超过k, 取决于男孩与女孩数目之差的最 ...
- [整理]document.execCommand()
http://msdn.microsoft.com/en-us/library/ms533049%28VS.85%29.aspx http://blog.csdn.net/lhrhi/article/ ...
- 你知道吗?10个精妙的 Java 编码最佳实践
这是一个比Josh Bloch的Effective Java规则更精妙的10条Java编码实践的列表.和Josh Bloch的列表容易学习并且关注日常情况相比,这个列表将包含涉及API/SPI设计中不 ...
- 【专题】平衡树(Treap,fhq-treap)
[旋转] 平衡树中的旋转是指在不改变中序遍历的前提下改变树的形态的方式.(中序遍历=排名顺序) 右旋将当前点的左节点旋上来,左旋反之.(图侵删) void rturn(int &k){ int ...
- 8、String练习题
String练习 1.字符串反转,例如将"abc"变成"cba" 2.统计一个字符串里面另一个字符串出现的次数,例如统计"monkey" ...
- Python练习-从小就背不下来的99乘法表
心血来潮,灵机一动,反正就是无聊的做了一个很简单的小玩意: for i in range(1,10):#让i 1-9 循环9次 print("\n")#每循环一次进行一次换行 fo ...
- WeX5入门之HelloWorld
学习目标:数据双向绑定 在ui2上右键 新建一个应用 然后会出现一个目录 右键hello 在创建页面 选择标准的空白模板 并起一个名 自动生成这两个文件 建立一个input组件 再建一个output组 ...
- 2015.07.15——prime素数
prime素数 1.素数也叫质数,定义是一个数只能被1和它自身整除. 素数从2开始,0,1都不是素数. 2.素数的判断(C++) 3.给定某个数,求小于这个数的所有素数 2.素数的判断(C++) bo ...
- 存储过程简单Demo
--创建存储过程 delimiter // create procedure p1() begin end // --调用存储过程 call p1(); --删除存储过程 drop procedure ...