首页 > 其他 > 详细

三级菜单1

时间:2019-06-27 23:21:01      阅读:352      评论:0      收藏:0      [点我收藏+]

 

技术分享图片
 1 menu = {
 2     北京: {
 3         海淀: {
 4             五道口: {
 5                 soho: {},
 6                 网易: {},
 7                 google: {}
 8             },
 9             中关村: {
10                 爱奇艺: {},
11                 汽车之家: {},
12                 youku: {},
13             },
14             上地: {
15                 百度: {},
16             },
17         },
18         昌平: {
19             沙河: {
20                 老男孩: {},
21                 北航: {},
22             },
23             天通苑: {},
24             回龙观: {},
25         },
26         朝阳: {},
27         东城: {},
28     },
29     上海: {
30         闵行: {
31             "人民广场": {
32                 炸鸡店: {}
33             }
34         },
35         闸北: {
36             火车战: {
37                 携程: {}
38             }
39         },
40         浦东: {},
41     },
42     山东: {},
43 }
44 # 请实现一下功能:
45 # 显示【北京、上海、山东】,用户输入选择
46 # 若输入【北京】,则显示【海淀、昌平、朝阳、东城】,用户可退出、返回上一层,也可输入选择
47 # 若输入【海淀】,则显示【五道口、中关村、上地】,用户可退出、返回上一层,也可输入选择
48 # 若输入【五道口】,则显示【Sohu、网易、google】,用户可退出、返回上一层,也可输入选择
View Code

 

技术分享图片
 1 # 递归思想
 2 def menu_func(menu):
 3     while True:
 4         for key in menu:
 5             print(key)
 6         inp = input(>>>).strip()
 7         if inp.upper() == Q: return q
 8         if inp.upper() == B: return b
 9         elif menu.get(inp):
10             flag = menu_func(menu[inp])
11             if flag == q: return q
12 menu_func(menu)
13 print(已退出)
View Code

 

技术分享图片
 1 # 堆栈思想
 2 lst = [menu]
 3 while lst:
 4     for key in lst[-1]:
 5         print(key)
 6     inp = input(>>>)   
 7     if inp.upper() == Q:
 8         break
 9     elif inp.upper() == B:  # 返回上一层
10         lst.pop()   # pop默认删除列表的最后一个元素
11     elif lst[-1].get(inp):
12         lst.append(lst[-1][inp])
View Code

 

三级菜单1

原文:https://www.cnblogs.com/liuweida/p/11099955.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!