python3 练习题(多级菜单)

Posted YanYan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 练习题(多级菜单)相关的知识,希望对你有一定的参考价值。

‘‘‘
多级菜单
需求:
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 练习题(多级菜单)的主要内容,如果未能解决你的问题,请参考以下文章

python作业-多级菜单

python3之利用字典和列表实现城市多级菜单

Python week1-练习2三级目录

老男孩python3学习,课堂作业1.2 多级菜单查询

Python3 使用基本循环实现多级目录(思路)

JavaSE-19.1.3IO流练习案例-复制多级文件夹