
正文
Python学习之编写三级菜单(Day1,作业二)
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
作业二:多级菜单
- 三级菜单
- 可依次进入各子菜单
- 在各级菜单中输入B返回上一级Q退出程序
知识点:字典的操作,while循环,for循环,if判断
思路:
1.开始,打印一级菜单让用户进行选择(可以输入q进行退出)
2.用户输入正确,展开二级菜单
3.要是用户输入错误,提示输入出错,并重新循环
4.用户选择二级菜单(b重新循环,q退出)
5.用户输入正确,打印三级菜单
6用户输入错误,提示输入错误,并重新进行循环
7在三级菜单中,用户可以输入b重新循环,输入q退出
流程图如下:

代码如下:
#!/usr/bin/env python # -*- coding:utf-8 -*- district_maps = { #定义字典 "华东区":{"山东":["济南","青岛","淄博"],"江苏":["苏州","南京","无锡"],"浙江":["杭州","宁波","温州"],}, "华南区":{"广东":["广州","深圳","珠海"],"广西":["桂林","柳州","北海"],"海南":["三亚","海口","三沙"]}, "华中区":{"湖北":["武汉","宜昌","黄冈"],"湖南":["长沙","株洲","湘潭"],"江西":["南昌","九江","上饶"]}, "华北区":{"北京":["东城区","朝阳区","海淀区"],"天津":["和平区","河西区","河北区"],"河北":["石家庄","唐山","张家口"]}, "西北区":{"宁夏":["银川","吴忠","固原"],"青海":["西宁","海东","海北藏族自治州"],"陕西":["西安","咸阳","延安"]}, "西南区":{"四川":["成都","绵阳","广元"],"云南":["昆明","丽江","玉溪"],"贵州":["贵阳","安顺","铜仁"]}, "东北区":{"辽宁":["沈阳","大连","鞍山"],"吉林":["长春","吉林","辽源"],"黑龙江":["哈尔滨","齐齐哈尔","牡丹江"]}, "港澳台区":{"香港":["香港岛","九龙半岛","新界"],"澳门":["澳门半岛","离岛","路氹城"],"台湾":["台北","台中","台南"]}, } while True: print("--------------中国省市查询--------------") #标题 for a in district_maps: #将字典中的key值赋给a,打印a print(a) print("---------------------------------------") while True : district_name = input("请输入您要查看的大区(q可退出):") #输入大区名,赋值给district_name if district_name in district_maps: #检查输入的大区名是否在字典中 sheng_name = district_maps[district_name] #使用输入的信息作为key,取出省信息,存在字典中 print("------------%s所包含的省份-------------" % district_name) #打印所输入的区里的省份 for b in sheng_name: #遍历列表,取出地市名字,打印出来 print(b) print("---------------------------------------") city_name = input("请输入您要查看的省(b可返回上级,q可退出):") #输入想要查看的省名 if city_name in sheng_name: #如果这个省名是否在省名列表中 shi_name = district_maps[district_name][city_name] #取出次大区中的省名,存在列表中 print("------------%s所包含的省份-------------" % city_name) for c in shi_name: #遍历列表,取出地市名字,打印出来 print(c) print("------------------------------------------") if city_name == "q": #用于最里面的循环退出程序 exit("-----------------谢谢使用------------------") if city_name == "b": #用于最里面的循环跳出循环 break if city_name not in sheng_name: #如果输入的省名不在省名列表中 print("您的输入有误,请重新输入") break #跳出循环重新开始 last_stage = input("请问是要返回上级(b)还是退出(q):") #最后一级 if last_stage == "q": #输入q退出 exit("----------------谢谢使用-----------------") elif last_stage == "b" : #输入b重新进入循环 print("------------------------------------------") break elif last_stage != "q"or"b": #输入的不是q也不是b,提示错误并退出使用 exit("--------------您的输入有误,谢谢使用------------") if district_name == "q": #在第一级中输入q将退出程序 exit("----------------谢谢使用-------------------") if district_name not in district_maps: #如果输入的值没有在字典中,提示输入错误,重新进行循环 print("------------------------------------------") print("您的输入有误,请重新输入") print("------------------------------------------")
三级菜单
做人靠自己!!








