s12-day01-work02 python多级菜单展示
README
1 # README.md # 2 3 day001-work-2 4 5 @南非波波 6 7 功能实现:多级菜单展示 8 9 流程图: 10  11 12 程序实现: 13 14 1.文件说明: 15 main.py:主程序入口 16 welcome.py:程序首页展示内容 17 citylist.py:程序的字典内容 18 checkinput.py:检查用户输入是否符合规定,设置二三级菜单展示函数 19 2.设置功能函数: 20 welcome.WelcomeInfo():首页函数,调用checkinput.CheckInputOne(Choose)函数,根据用户输入返回相应值或者调用相应函数 21 welcome.GoBack(Choose):返回函数,该函数最终设计目标实现多级返回,但目前只实现返回到首页 22 checkinput.CheckInputOne(Choose):函数判断用户在第一次输入的值是否异常,根据用户输入情况进行相应值返回或者调用相应函数 23 checkinput.InputIfOne(Choose):调用checkinput.ShowInfo(Area)函数展示地区下面的省份,并且多层循环、遍历字典、列表展示二三层菜单。期间调用checkinput.ChooseInputTwo(Choose)函数进行用户输入的判断,并返回True|Flase值. 24 3.主函数入口: 25 import welcome 26 #main 27 if __name__ =="__main__": 28 welcome.WelcomeInfo() 29 30 代码地址: 31 32 https://github.com/swht/projects/tree/master/day01/work-2 33 34 博客地址: 35 36 http://www.cnblogs.com/songqingbo/p/5091830.html
流程图:

程序代码:
main.py
1 #!/usr/local/env python3 2 ''' 3 Author:@swht 4 Blog:http://www.cnblogs.com/songqingbo/ 5 E-mail:qingbo.song@gmail.com 6 ''' 7 import welcome 8 9 #main 10 if __name__ =="__main__": 11 welcome.WelcomeInfo()
welcome.py
1 #!/usr/local/env python3 2 ''' 3 Author:@swht 4 Blog:http://www.cnblogs.com/songqingbo/ 5 E-mail:qingbo.song@gmail.com 6 ''' 7 import citylist 8 import checkinput 9 import sys,time 10 #登录欢迎界面 11 def WelcomeInfo(): 12 for i in range(0,3): 13 Choose = input(''' 14 =================================================== 15 欢迎来到中国! 16 =================================================== 17 [11]华北地区 [12]东北地区 [13]华东地区 [14]华中地区 18 [15]华南地区 [16]西南地区 [17]西北地区 [18]特别行政区 19 [19]退出 20 请选择相应指令:''').strip() 21 checkinput.CheckInputOne(Choose) 22 GoBack("地区") 23 24 #错误次数已达3,程序退出 25 def GoBack(Choose): 26 if Choose == "地区": 27 print("你的输入错误次数已达3次,系统将退出!") 28 time.sleep(1) 29 sys.exit(1)
citylist.py
1 #!/usr/local/env python3 2 ''' 3 Author:@swht 4 Blog:http://www.cnblogs.com/songqingbo/ 5 E-mail:qingbo.song@gmail.com 6 ''' 7 8 CityList ={ 9 "华北地区":{ 10 "北京市":['东城区','西城区','崇文区','宣武区','朝阳区','丰台区','石景山区','海淀区','门头沟区','房山区','通州区','顺义区','昌平区','大兴区','怀柔区','平谷区','密云县','延庆县'], 11 "天津市":['和平区', '河东区', '河西区', '南开区', '河北区', '红桥区', '塘沽区', '汉沽区', '大港区', '东丽区', '西青区', '津南区','北辰区', '武清区', '宝坻区', '宁河县', '静海县', '蓟县'], 12 "河北省":['石家庄市','秦皇岛市'], 13 "山西省":['太原市','大同市'], 14 "内蒙古自治区":['呼和浩特市','包头市'] 15 }, 16 "东北地区":{ 17 "辽宁省":["铁岭市","阜新市","朝阳市","沈阳市"], 18 "吉林省":['长春市','吉林市','辽源市'], 19 "黑龙江省":['哈尔滨市','齐齐哈尔市'] 20 }, 21 "华东地区":{ 22 "上海市":["浦东新区","长宁区","宝山区","青浦区"], 23 "江苏省":['南京市','徐州市'], 24 "浙江省":['杭州市','宁波市'], 25 "安徽省":['合肥市','淮南市'], 26 "福建省":['福州市','厦门市'], 27 "江西省":['南昌市','景德镇市'], 28 "山东省":["济南市","青岛市","潍坊市","德州市"] 29 }, 30 "华中地区":{ 31 "河南省":['郑州市','洛阳市'], 32 "湖北省":['武汉市','荆门市'], 33 "湖南省":['长沙市','株洲市'] 34 }, 35 "华南地区":{ 36 "广东省":['广州市','深圳市'], 37 "海南省":['海口市','三亚市','五指山市', '琼海市', '儋州市', '文昌市', '万宁市', '东方市'], 38 "广西壮族自治区":['南宁市','桂林市'] 39 }, 40 "西南地区":{ 41 "重庆市":['渝中区', '大渡口区', '江北区', '沙坪坝区', '九龙坡区', '南岸区', '北碚区', '万盛区', '双桥区', '渝北区'], 42 "四川省":['成都市','自贡市'], 43 "贵州省":['贵阳市','遵义市'], 44 "云南省":['昆明市','保山市'], 45 "西藏自治区":['拉萨市','昌都地区'] 46 }, 47 "西北地区":{ 48 "陕西省":['西安市','宝鸡市'], 49 "甘肃省":['兰州市','天水市'], 50 "青海省":['西宁市','玉树州'], 51 "宁夏回族自治区":['银川市','石嘴山市'], 52 "新疆维吾尔自治区":['乌鲁木齐市','克拉玛依市'] 53 }, 54 "特别行政区":{ 55 "香港特别行政区":['中西区', '东区', '九龙城区', '观塘区', '南区', '深水埗区', '黄大仙区', '湾仔区', '油尖旺区', '离岛区', '葵青区', '北区', '西贡区', '沙田区', '屯门区', '大埔区', '荃湾区', '元朗区'], 56 "澳门特别行政区":[], 57 "台湾省":['台北市', '高雄市', '基隆市', '台中市', '台南市', '新竹市', '嘉义市'] 58 } 59 }
checkinput.py
1 #!/usr/local/env python3 2 ''' 3 Author:@swht 4 Blog:http://www.cnblogs.com/songqingbo/ 5 E-mail:qingbo.song@gmail.com 6 ''' 7 import welcome,citylist 8 import sys,time 9 10 #一级菜单输入字段判断 11 def CheckInputOne(Choose): 12 if Choose == '': 13 print("指令不能为空,请输入正确指令!") 14 else: 15 if Choose.isdigit(): 16 Choose = int(Choose) 17 if Choose >= 11 and Choose <= 19: 18 InputIfOne(Choose) 19 else: 20 print("你输入的指令已超出范围,请按照系统指令进行输入!") 21 else: 22 print("请输入正确的指令,指令为整数型数字!") 23 24 def InputIfOne(Choose): 25 if Choose == 11: 26 ShowInfo("华北地区") 27 if Choose == 12: 28 ShowInfo("东北地区") 29 if Choose == 13: 30 ShowInfo("华东地区") 31 if Choose == 14: 32 ShowInfo("华中地区") 33 if Choose == 15: 34 ShowInfo("华南地区") 35 if Choose == 16: 36 ShowInfo("华南地区") 37 if Choose == 17: 38 ShowInfo("西北地区") 39 if Choose == 18: 40 ShowInfo("特别行政区") 41 if Choose == 19: 42 print("欢迎下次再来中国!") 43 time.sleep(1) 44 sys.exit(0) 45 46 #二级、三级菜单输入字段判断 47 def ChooseInputTwo(Choose): 48 if Choose == '': 49 print("指令不能为空,请输入正确指令!") 50 else: 51 if Choose.isdigit(): 52 return True 53 elif Choose == 'back' or Choose == 'Back' or Choose == 'BACK': 54 return False 55 else: 56 # print("你输入的指令已超出范围,请按照系统指令进行输入!") 57 pass 58 #二级、三级菜单显示 59 def ShowInfo(Area): 60 #显示省份 61 for i in range(0,3): #允许用户最大错误次数3次 62 print(''' 63 =================================================== 64 欢迎来到%s! 65 ==================================================='''% Area) 66 # citylist.CityList[Area].keys() 获取地区里面的省份键值 67 Count = 0 68 for index,key in enumerate(citylist.CityList[Area].keys()): #python3中citylist.CityList[Area].keys()输出的是dict_keys对象 69 Count += 1 70 print("\t\t\t序号:%s\t省份:%s" % (index,key)) 71 Choose1 = input("\t\t请选择相应序号进入相应省份!返回上级菜单[Back]:").strip() 72 ChooseInputTwo(Choose1) 73 if ChooseInputTwo(Choose1) == True: 74 Choose1 = int(Choose1) 75 if Choose1 >= 0 and Choose1 < Count: 76 #python3中将dict_keys转换成列表再做索引 77 #python2中dict.keys()的输出对象就是一个列表,可以直接进行索引操作 78 #KeyOne = citylist.CityList[Area].keys()[Choose1] 79 KeyOne = list(citylist.CityList[Area].keys())[Choose1] #获取省份keys 80 #显示城市 81 for i in range(0,3): #允许用户最大错误次数3次 82 Count = 0 83 print(''' 84 =================================================== 85 欢迎来到%s! 86 ===================================================''' % KeyOne) 87 for index,key in enumerate(citylist.CityList[Area][KeyOne]): 88 Count += 1 89 print("\t\t\t序号:%s\t城市地区:%s" % (index,key)) 90 Choose2 = input("\t\t请选择相应序号进入相应城市地区!返回上级菜单[Back]:").strip() 91 ChooseInputTwo(Choose2) 92 if ChooseInputTwo(Choose2) == True: 93 Choose2 = int(Choose2) 94 if Choose1 >= 0 and Choose2 < Count: 95 KeyTwo = citylist.CityList[Area][KeyOne][Choose2] #获取地区名称 96 print("\t\t哈哈,到头了!\t\t%s" % KeyTwo) 97 print("\t\t穿越到上一级菜单喽......") 98 time.sleep(1) 99 break 100 else: 101 print("你输入的指令不在范围内!") 102 time.sleep(1) 103 continue 104 elif ChooseInputTwo(Choose2) == False: 105 print("\t\t系统将返回上一级菜单!") 106 time.sleep(1) 107 break #跳出当前一级循环 108 else: 109 print("你是输入有误,请重新输入!") 110 time.sleep(1) 111 continue 112 print("你的输入次数已达三次,系统返回上一级菜单!") 113 else: 114 print("你输入的指令不在范围内!") 115 time.sleep(1) 116 continue #跳出当前循环 117 elif ChooseInputTwo(Choose1) == False: 118 welcome.WelcomeInfo() #首页 119 else: 120 print("你的输入有误,请重新输入!") 121 print("你的输入次数已达三次,系统将返回首页!") 122 welcome.WelcomeInfo()
github更新地址:
https://github.com/swht/projects/tree/master/day01/work-2
@南非波波
github:https://github.com/swht

浙公网安备 33010602011771号