menu = {
'大一':{
'学科':{
'c语言':{},
'物联网概论':{},
'初识python': {},
'操作系统':{}
},
'娱乐':{
'运动会':{},
'实验室':{},
'学生会':{}
}
},
'大二': {
'课程': {
'计算机组成原理': {},
'数据结构': {},
'单片机': {},
'计算机网络':{}
},
'兼职':{
'家教':{},
'进厂':{},
'服务员':{}
}
},
'大三': {
'自学': {
'python': {},
'数据结构': {},
'前端': {},
'数据库':{}
},
'经历':{
'找实习':{},
'实习':{}
}
}
}
# 方法一:用递归的方式
def ThreeMenu(dic):
while 1:
for key in dic:print(key)
key = input('>>>').strip()
if key == 'b' or key == 'q':return key
elif key in dic.keys() and dic[key]:
res = ThreeMenu(dic[key])
if res == 'q': return 'q'
elif (not dic.get(key)) or (not dic[key]):
continue
ThreeMenu(menu)
#方法二:用堆栈的方式
l = [menu]
while l:
for key in l[-1]:print(key)
k = input('input>>').strip() # 北京
if k in l[-1].keys() and l[-1][k]:
l.append(l[-1][k])
elif k == 'b':l.pop()
elif k == 'q':break