zoukankan      html  css  js  c++  java
  • 【Pthon入门学习】多级菜单小例子

      1 menu_list = {
      2     '北京':{
      3         '昌平':{
      4             '回龙观':{
      5                 '和谐家园':{},
      6                 '矩阵小区':{},
      7                 '北店家园':{}
      8             },
      9             '沙河':{
     10                 '北街家园1区':{},
     11                 '北街家园2区':{},
     12                 '北师大附小':{}
     13             }
     14         },
     15         '海淀':{
     16             '西二旗':{
     17                 '云端时代':{},
     18                 '百度':{},
     19                 '软件园':{}
     20             },
     21             '西三旗':{
     22                 '上地五街':{},
     23                 '上地三街':{},
     24                 '方正集团':{}
     25             }
     26         }
     27     },
     28     '邯郸':{
     29         '丛台区':{
     30             '黄粱梦':{
     31                 '东官庄':{},
     32                 '王李庄':{}
     33             },
     34             '沙河':{
     35                 '北街家园1区1':{},
     36                 '北街家园2区2':{},
     37                 '北师大附小3':{}
     38             }
     39         },
     40         '复兴区':{
     41             '永年':{
     42                 '云端时代1':{},
     43                 '百度2':{},
     44                 '软件园3':{}
     45             },
     46             '肥乡':{
     47                 '上地五街1':{},
     48                 '上地三街2':{},
     49                 '方正集团3':{}
     50             }
     51         }
     52     },
     53  }
     54 map_list = []
     55 cur_layer_pos = 0
     56 cur_layer_keys = []
     57 cur_layer_keys_values = []
     58 is_exit = False
     59 is_not_next = True
     60 while not is_exit:
     61     if is_not_next:
     62         if cur_layer_pos == 0:
     63             cur_layer_keys = menu_list.keys()
     64         else:
     65             cur_layer_keys = map_list[cur_layer_pos - 1][1].keys()
     66 
     67     if len(cur_layer_keys) > 0:
     68         is_not_next = True
     69         print('可以进入的下一级菜单显示:', list(cur_layer_keys))
     70     else:
     71         print("已经到菜单底部啦,只能输入p返回上一级菜单")
     72     cur_menu_name = input('请输入菜单名:')
     73     if cur_menu_name.lower() == 'p':
     74         if cur_layer_pos > 0:
     75             map_list.pop()
     76             cur_layer_pos -= 1
     77             is_not_next = True
     78         else:
     79             print('已经到顶级菜单啦.')
     80     elif cur_menu_name.lower() == 'q':
     81         is_exit = True
     82     elif cur_menu_name in cur_layer_keys:
     83         map_list.append([cur_menu_name, menu_list[cur_menu_name] if cur_layer_pos == 0 else map_list[cur_layer_pos - 1][1][cur_menu_name]])
     84         cur_layer_pos += 1
     85     else:
     86         if len(cur_layer_keys) > 0:
     87             print("请输入正确的菜单名称...")
     88         else:
     89             is_not_next = False
     90             print("已经到菜单底部啦,只能输入p返回上一级菜单")
     91     print('当前所在的位置:', [_map[0] for _map in map_list])
     92 
    View Code

    多级菜单的要求如下:

    1. 可以依次进入子菜单

    2. 任意级菜单均可返回上一级

    3. 任意级菜单均可退出程序

    主要是锻炼列表和字典数据类型

    三级菜单实现可以如下:

    http://www.cnblogs.com/bg0131/p/6416816.html

  • 相关阅读:
    SQL删除多表关联数据的三种方法
    如何防范SQL注入攻击
    非关系型数据库和关系型数据库有哪些区别?
    Asp.Net生命周期的详解
    ASP与ASP.NET区别
    COOKIE和SESSION有什么区别?
    关于SQL数据库中cross join 和inner join用法上的区别?
    Java-编程规范与代码风格
    TCP 连接建立与关闭(三次握手与四次挥手)
    OSI 七层模型
  • 原文地址:https://www.cnblogs.com/yongqiangyue/p/8717078.html
Copyright © 2011-2022 走看看