三級菜單作業
阿新 • • 發佈:2018-05-20
列表 理解 菜單 作業 往回 自己 第一次 google 打破
作業需求:
數據結構:
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層");
三級菜單作業