實現目標:
逐級的訪問菜單中的數據,並且可以返回上一級和退出。
三級菜單爲:
menu = {
"山東":{
"青島":{
"市南":{},
"市北":{},
"城陽":{}
},
"濟南":{
"長清":{},
"章丘":{},
"萊蕪":{}
},
"淄博":{
"張店":{},
"桓臺":{},
"周村":{}
}
},
"湖北":{
"武漢":{
"111":{},
"222":{},
"333":{}
},
"黃岡":{
"444":{},
"555":{},
"666":{}
},
"武昌":{
"777":{},
"888":{},
"999":{}
}
},
"上海":{
}
}
方法一:遞歸實現
def view(dic):
while True:
for i in dic:print(i)
k = input("請輸入一個地方:")
if k == "b" or k == "q": return k
if k in dic.keys() and dic[k]:
ret = view(dic[k])
if ret == "q":return "q"
view(menu)
方法二:堆棧實現
st = [menu]
while st:
dic = st[-1]
for i in dic:print(i)
k = input("請輸入:")
if k in dic.keys() and dic[k]:
st.append(dic[k])
elif k == "b":st.pop()
elif k == "q":break