python编程实例-三级菜单
程序员文章站
2024-03-14 20:42:41
...
一.程序要求
1.打印城市-区-地点的城市三级菜单
2.在菜单中可以一层一层的进入所有的目录层
3.也能够一层一层的退出目录
4.在任何一级菜单都可以退出程序
程序如下
menu={
'南京':{
'鼓楼区':{
'新街口':{},
'湖南路':{},
'紫峰':{},
},
'玄武区':{
'珠江路':{},
'玄武湖':{},
'紫金山':{},
},
'栖霞区':{
'仙林大学城':{},
'迈皋桥':{},
'晓庄':{},
},
'秦淮区':{
'夫子庙':{},
'苜蓿园':{},
'中华门':{},
},
},
'扬州':{
'广陵区':{
'东光街':{},
'四望亭':{},
'时代广场':{},
},
'邗江区':{
'京华城':{},
'汽车西站':{},
'瘦西湖':{},
},
'仪征市':{
'真州镇':{},
'青山镇':{},
'大仪镇':{},
},
},
'北京':{
'朝阳区':{
'三里屯':{},
'国贸':{},
'望京':{},
},
'海淀区':{
'中关村':{},
'五道口':{},
'五棵松':{},
},
'东城区':{
'王府井':{},
'东直门':{},
'安定门':{},
},
},
}
Flag=False#默认不返回上级菜单
while not Flag:
for key in menu:
print(key)
choice=input("1-->>").strip()
if choice in menu:
while not Flag:
for key2 in menu[choice]:
print(key2)
choice2=input("2-->>").strip()
if choice2 in menu[choice]:
while not Flag:
for key3 in menu[choice][choice2]:
print(key3)
print("the last level")
choice3 = input("3-->>").strip()
if choice3 in menu[choice][choice2]:
print("------------welcome to our city---------")
elif choice3=='q':
break
elif choice3 == 'e':
Flag=True
elif choice2 == 'q':
break
elif choice2 == 'e':
Flag = True
elif choice=='q':
print("###########welcome to come next time#################")
break
elif choice == 'e':
Flag = True
程序执行
二.将代码优化,但是暂时只能实现逐层进入下级菜单,并能够逐层返回上一级菜单,无法完全退出程序,也无法任意退出程序
代码实现:
menu={
'南京':{
'鼓楼区':{
'新街口':{},
'湖南路':{},
'紫峰':{},
},
'玄武区':{
'珠江路':{},
'玄武湖':{},
'紫金山':{},
},
'栖霞区':{
'仙林大学城':{},
'迈皋桥':{},
'晓庄':{},
},
'秦淮区':{
'夫子庙':{},
'苜蓿园':{},
'中华门':{},
},
},
'扬州':{
'广陵区':{
'东光街':{},
'四望亭':{},
'时代广场':{},
},
'邗江区':{
'京华城':{},
'汽车西站':{},
'瘦西湖':{},
},
'仪征市':{
'真州镇':{},
'青山镇':{},
'大仪镇':{},
},
},
'北京':{
'朝阳区':{
'三里屯':{},
'国贸':{},
'望京':{},
},
'海淀区':{
'中关村':{},
'五道口':{},
'五棵松':{},
},
'东城区':{
'王府井':{},
'东直门':{},
'安定门':{},
},
},
}
current_level=menu
previous_level=[]
while True:
for key in current_level:
print(key)#循环遍历字典,打印出字典的key
choice=input(">>").strip()
if len(choice) == 0 :continue
if choice in current_level:
previous_level.append(current_level)#在进入下一层菜单之前,将上一层菜单保存到previous_level里面
current_level=current_level[choice]#将下一层菜单赋值给current_level,进行下一层菜单的选择
elif choice=="q":
if previous_level:#如果previous_level为非空列表
current_level=previous_level.pop()#取出列表中的最后一个值,作用返回上一级菜单
else:
print("no choice")
上一篇: Linux修炼之路 (一)
下一篇: 动手学深度学习_1
推荐阅读
-
python编程实例-三级菜单
-
Python3编程实现获取阿里云ECS实例及监控的方法
-
Python练习题答案: 删除第一次和最后一个字符【难度:0级】--景越Python编程实例训练营,1000道上机题等你来挑战
-
python进阶练习题:排序CSV文件的列【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
-
python基础练习题:删除第一次和最后一个字符【难度:0级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
-
Android编程基础之Menu功能菜单设计实例
-
Python字典实现简单的三级菜单(实例讲解)
-
Python模拟三级菜单效果
-
Python编程之变量赋值操作实例分析
-
Python编程之字符串模板(Template)用法实例分析