• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
隐身
不能改变社会,就要学会改变自己
博客园    首页    新随笔    联系   管理    订阅  订阅

三级菜单

menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
#函数版:
def threeLM(dic):
while True:
for k in dic:print(k)
key = input('请输入,b返回,q退出>>:').strip()
if key == 'b' or key == 'q':return key
elif key in dic.keys() and dic[key]:
ret = threeLM(dic[key])
if ret == 'q':return 'q'
elif (not dic.get(key)) or (not dic[key]):
continue
threeLM(men)

#堆栈:
l = [menu]
while l:
# dic = l.pop()
for key in l[-1]:print(key)
k = input('请输入,b返回,q退出>>:').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
else:continue

#普通版
data = menu
labyer = []
while True:
for k in data:
print(k)
choice = input('请输入,b返回,q退出>>:').strip()
if not choice:continue
if choice in data:
labyer.append(data)
print(labyer)
data = data[choice]
elif choice == 'b':
if len(labyer) != 0:
data = labyer.pop()
else:print('最后一层')
else:exit()

posted @ 2018-06-10 15:15  隐身哈  阅读(181)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3