最近有些忙,隔了好多天才写出来这个作业.感觉如果python有C语言的指针的话这个作业会比较好实现.急需学习下一个基础内容,指针和跳转(不知道有没有).
作业内容:
1.有3层菜单,输入菜单名可以逐级进入,打印菜单名.
2.可以逐级退出至上一层菜单
3.可退出菜单
#__author__: zoe
#date: 2019/6/10
_Menu = { #########菜单设置为字典
'浙江省':{
'杭州市':{
'上城区':{
'KFC':{},
'麦当劳':{}
},
'萧山区':{
'湘湖':{},
'阿里巴巴':{},
'网易':{}
},
'江干区':{
'城站':{},
'汽车南站':{},
'之江路':{}
},
'西湖区':{
'西湖':{},
'浙江大学':{},
'玉泉':{}
}
},
'金华市':{
'义乌市':{
'小商品市场':{},
'永清岩寺':{},
'国际家具城':{}
},
'东阳市':{
'巍山镇':{},
'横店镇':{},
'鬼子炮楼':{}
},
'磐安县':{
'安文镇':{},
'方前':{},
'玉山':{}
},'永康县':{
'方岩':{},
'五金城':{}
}},
'嘉兴市':{
'海宁市':{
'皮草城':{},
'鹃湖公园':{},
'东山公园':{}
},
'桐乡市':{
'凤凰湖':{},
'新世纪公园':{},
'锦绣苑':{},
},
'嘉善县':{
'光明村':{},
'长秀小学':{}
},'海盐县':{
'海滨公园':{},
'海逸长洲':{}
}}
},
'天津市':{
'和平区':{
'小白楼':{
'音乐厅':{},
'友谊精品广场':{}
},
'天河城':{
'麦当劳':{},
'好利来':{},
'满园春饼':{}
}
},
'南开区':{
'水上公园':{
'划船':{},
'螃蟹楼':{},
'动物园':{}
},
'长虹公园':{},
'王顶堤':{}
},
'蓟州区':{
'盘山':{},
'九山顶':{},
'长城':{}
}
}
}
flag = True
point = _Menu
route = []
while flag:
for key in point:
print(key)
choice = input('输入省份:').strip()
if choice in point:
route.append(point) #####使用一个列表route来记录每次选择后对应的字典,如果menu菜单很大,那可能这个列表也会很大
point = point[choice]
elif choice == 'up': ######### 输入up则返回上一层菜单,使用route列表来记录去过的菜单层
if route:
point = route.pop() ###### 将point指向route列表中的最后一层,即上一次去过的目录.
elif choice == 'q': ####此处设计q为返回第一层菜单,若要结束程序,则在后面添加flag = False
point = _Menu
route.clear()
else:print('无此项')
#######下面注释段重复代码太多,不够好.
#
# while True:
# for key2 in _Menu[choice]:
# print(key2)
# choice2 = input('输入市(区):').strip()
# if choice2 in _Menu[choice]:
# while True:
# for key3 in _Menu[choice][choice2]:
# print(key3)
# choice3 = input('输入乡镇(街道):').strip()
# if choice3 in _Menu[choice][choice2]:
# for key4 in _Menu[choice][choice2][choice3]:
# print(key4)
# print('输入up返回上一级')
# print('输入q退出')
# elif choice3 == 'up':
# break
# elif choice3 == 'q':
# flag ==False
#
#