码迷,mamicode.com
首页 > 编程语言 > 详细

python3 练习题(多级菜单)

时间:2019-04-10 10:36:54      阅读:414      评论:0      收藏:0      [点我收藏+]

标签:city   结构   ict   index   break   county   str   color   app   

‘‘‘
多级菜单
需求:
1.现有省/市/县3级结构,要求程序启动后,允许用户可依次选择进入各子菜单
2.可在任意一级菜单返回上一级
3.可以在任意一级菜单退出程序
所需新知识点: 列表/字典
‘‘‘
#定义省/市/县3级结构
province_dict = {
"山东": {
"济南": ["平阴", "商河", "莱芜"],
"济宁": ["金乡", "微山", "嘉祥"],
"曲阜": ["南辛", "陵城", "防山"]
},
"北京": {
"海淀": ["万寿路", "永定路", "中关村"],
"昌平": ["回龙观", "南口", "沙河"],
"朝阳": ["呼家楼", "三里屯", "双井"]
},
"上海": {
"黄浦": ["南京东路", "外滩", "瑞金二路"],
"徐汇": ["湖南路", "天平路", "枫林路"],
"长宁": ["华阳路", "新华路", "江苏路"]
},
}

Flag = True
while Flag:
# 定义空省列表
province_list = []

#显示省信息(一级)
for pIndex, province in enumerate(province_dict):
print(pIndex, province)
province_list.append(province)
print("Q 退出")

#提示省编号
p_choice = input("请输入省编号: ").strip()
if p_choice.isdigit():
p_choice = int(p_choice)
if p_choice >=0 and p_choice < len(province_list):
#显示市信息(二级)
while Flag:
city_list = []
for cIndex, city in enumerate(province_dict[province_list[p_choice]]):
print(cIndex, city)
city_list.append(city)
print("B 返回上一级, Q 退出")

#提示用户输入市编号
c_choice = input("请输入市编号: ").strip()
if c_choice.isdigit():
c_choice = int(c_choice)
if c_choice >= 0 and c_choice < len(city_list):
while Flag:
county_list = []
#显示县信息(三级)
for ind, county in enumerate(province_dict[province_list[p_choice]][city_list[c_choice]]):
print(ind, county)
county_list.append(county)
print("B 返回上一级, Q 退出")

#让用户选择县编号
cou_choice = input("请输入县编号: ").strip()
if cou_choice.isdigit():
cou_choice = int(cou_choice)
if cou_choice >=0 and cou_choice < len(county_list):
while Flag:
#显示县名称
print(province_dict[province_list[p_choice]][city_list[c_choice]][cou_choice])
print("B 返回上一级, Q 退出")

#最后一级判断用户的输入
last_choice = input("请输入B返回上一级 或 Q退出").strip()
if last_choice.upper() == "B":
break
elif last_choice.upper() == "Q":
Flag = False
else:
print("目前已是最后一层,请输入B返回上一级 或Q退出.")
else:
print("输入有误,请输入正确的县编号.")
elif cou_choice.upper() == "B":
break
elif cou_choice.upper() == "Q":
Flag = False
else:
print("输入有误,请输入正确的县编号.")
else:
print("输入有误,请输入正确的市编号.")
elif c_choice.upper() == "B":
break
elif c_choice.upper() == "Q":
Flag = False
else:
print("输入有误,请重新输入正确的市编号.")
else:
print("输入有误,请输入正确的省编号.")
elif p_choice.upper() == "Q":
Flag = False
else: print("输入有误,请重新输入正确的省编号.")

python3 练习题(多级菜单)

标签:city   结构   ict   index   break   county   str   color   app   

原文地址:https://www.cnblogs.com/lilyxiaoyy/p/10681640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!