三级菜单作业
Posted 刘冬冬的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三级菜单作业相关的知识,希望对你有一定的参考价值。
作业需求:
数据结构:
menu = {
‘北京‘:{
‘海淀‘:{
‘五道口‘:{
‘soho‘:{},
‘网易‘:{},
‘google‘:{}
},
‘中关村‘:{
‘爱奇艺‘:{},
‘汽车之家‘:{},
‘youku‘:{},
},
‘上地‘:{
‘百度‘:{},
},
},
‘昌平‘:{
‘沙河‘:{
‘老男孩‘:{},
‘北航‘:{},
},
‘天通苑‘:{},
‘回龙观‘:{},
},
‘朝阳‘:{},
‘东城‘:{},
},
‘上海‘:{
‘闵行‘:{
"人民广场":{
‘炸鸡店‘:{}
}
},
‘闸北‘:{
‘火车战‘:{
‘携程‘:{}
}
},
‘浦东‘:{},
},
‘山东‘:{},
}
需求:
可依次选择进入各子菜单
可从任意一层往回退到上一层
可从任意一层退出程序
所需新知识点:列表、字典
本来觉得三级菜单是有点难度的,想不到从哪里下手,但是后来仔细想了一下还是没有思路,那就直接写,
然后第一次写出来的用了一个while循环只能一级一级的往下去不能返回,
再然后吃了一个饭忽然想起来了,大概思路就是用多个while循环嵌套,返回上一级就打破当前的while,然后就会返回到上一级的while循环,依次类推
再就是continue的运用,当输入的是错误的信息时就直接跳出这一次循环,感觉非常好用
虽然代码还可以进行优化,但是自己能写出这样的就很不错了,还加深了对while循环break和continue的理解
不说了,直接上代码
#数据结构: ‘‘‘需求: 可依次选择进入各子菜单 可从任意一层往回退到上一层 可从任意一层退出程序 所需新知识点:列表、字典‘‘‘ menu = { ‘北京‘:{ ‘海淀‘:{ ‘五道口‘:{ ‘soho‘:{}, ‘网易‘:{}, ‘google‘:{} }, ‘中关村‘:{ ‘爱奇艺‘:{}, ‘汽车之家‘:{}, ‘youku‘:{}, }, ‘上地‘:{ ‘百度‘:{}, }, }, ‘昌平‘:{ ‘沙河‘:{ ‘老男孩‘:{}, ‘北航‘:{}, }, ‘天通苑‘:{}, ‘回龙观‘:{}, }, ‘朝阳‘:{}, ‘东城‘:{}, }, ‘上海‘:{ ‘闵行‘:{ "人民广场":{ ‘炸鸡店‘:{} } }, ‘闸北‘:{ ‘火车战‘:{ ‘携程‘:{} } }, ‘浦东‘:{}, }, ‘山东‘:{}, } while (1): for i in menu: print(i) choice=input(‘>>‘).strip() while(1): if choice in menu: print (‘进入第一层‘) for i in menu[choice]: print(i) choice2 = input(‘>>‘).strip() if (choice2 == ‘return‘): #if elif 的区别?不要和c++中的else if 混淆!! print(‘已经返回到最上一层‘) break if choice2 in menu[choice]: pass #用pass语句防止报错 else: print("输入有误请重新输入1层"); continue while (1): if choice2 in menu[choice]: print (‘进入第二层‘) for i in menu[choice][choice2]: print (i) choice3 = input(‘>>‘).strip() if (choice3==‘return‘): break if choice3 in menu[choice][choice2]: while (1): if choice3 in menu[choice][choice2]: print(‘进入第三层‘) for i in menu[choice][choice2][choice3]: print(i) choice4 = input(‘>>‘).strip() if (choice4 == ‘return‘): break else: print("输入有误请重新输入3层") else: print("输入有误请重新输入2层");
以上是关于三级菜单作业的主要内容,如果未能解决你的问题,请参考以下文章