码迷,mamicode.com
首页 > 编程语言 > 详细

Python实现三级菜单

时间:2018-06-24 10:27:49      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:str   continue   修改   中关村   span   bre   soho   inpu   layer   

需求:
    可依次选择进入各子菜单
    可从任意一层往回退到上一层
    可从任意一层退出程序
    所需新知识点:列表、字典
只用一个while循环

 1 #! -*- coding:utf-8 -*-
 2 
 3 menu = {
 4     北京: {
 5         海淀: {
 6             五道口: {
 7                 soho: {},
 8                 网易: {},
 9                 google: {}
10             },
11             中关村: {
12                 爱奇艺: {},
13                 汽车之家: {},
14                 youku: {},
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 current_layer = menu  # 实现动态循环
47 parent_layer = []  # 保留所有父层,最后一个元素永远为父层
48 
49 while True:
50     print(- * 10, "菜单", - * 10)
51     for i in current_layer:  # 遍历打印地址
52         print(i)
53     print("请在下方输入菜单名称,或 b:返回上一层,q:退出\n", - * 26)
54     choice = input(" >>> ").strip()
55     if choice in current_layer:
56         if current_layer[choice]:  # 判断是否为末层
57             parent_layer.append(current_layer)  # 进入子层前,添加当前层作为父层
58             current_layer = current_layer[choice]  # 修改子层
59         else:
60             print(当前是最后一页)
61     elif choice == ‘‘:
62         continue
63     elif choice == b or choice == B:  # 返回上层
64         if parent_layer:  # 判断 parent_layer 是否为空
65             current_layer = parent_layer.pop()  # 取出当前层父层
66     # 退出循环
67     elif choice == q or choice == Q:
68         break
69     else:
70         print("\033[34;1m输入有误,请重新输入\033[0m")

 


Python实现三级菜单

标签:str   continue   修改   中关村   span   bre   soho   inpu   layer   

原文地址:https://www.cnblogs.com/shihun/p/9219240.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!