zoukankan      html  css  js  c++  java
  • 【作业】三级目录

    实现需求:

    老师代码:

    l_city ={
        '北京1':
              {'昌平1':
                  {'沙河1':['老男孩','阿泰包子'],
                   '天通苑1':['臭豆腐','烤肉串']
                   },
    
              '朝阳1':
                  {'朝阳门1':['吉事果','老酸奶'],
                   '红领巾桥1':['麻辣烫','旋风土豆']
                   },
              '海淀1':
    
                  {'颐和园1':['景区','还是景区'],
                   '玉泉山1':['大树','还是大树']
                  }
    
              }
        ,
        '北京2':
             {'昌平2':
                  {'沙河2': ['老男孩', '阿泰包子'],
                   '天通苑2': ['臭豆腐', '烤肉串']
                   },
    
              '朝阳2':
                  {'朝阳门2': ['吉事果', '老酸奶'],
                   '红领巾桥2': ['麻辣烫', '旋风土豆']
                   },
              '海淀2':
    
                  {'颐和园2': ['景区', '还是景区'],
                   '玉泉山2': ['大树', '还是大树']
                   }
    
             }
        ,
        '北京3':
             {'昌平3':
                  {'沙河3': ['老男孩', '阿泰包子'],
                   '天通苑3': ['臭豆腐', '烤肉串']
                   },
    
              '朝阳3':
                  {'朝阳门3': ['吉事果', '老酸奶'],
                   '红领巾桥3': ['麻辣烫', '旋风土豆']
                   },
              '海淀3':
                  {'颐和园3': ['景区', '还是景区'],
                   '玉泉山3': ['大树', '还是大树']
                   }
    
             }
    
    }

    以上是字典部分
    下面才是代码部分

    ways = []
    
    def new_dic(zidian):
        # print(y[0].keys())                                            #用于调试
        print('you can chose:',zidian.keys())
        key = input(">>:").strip()
    
        try:                                                            #错误输入就退出
            if key in zidian:                                           #如果传入的key值符合规范
                sub_zidian = zidian.get(key)                            #取得key所包含的字典,并赋值给新的字典
                if type(sub_zidian) is dict:
                    ways.append(zidian)                                 # 保存初始路径
                    return new_dic(sub_zidian)                          #返回字典函数进行下一轮
                else:
                    print(sub_zidian)
                    print('已经到底了,后面选项无法选择')                    #字典底层元素为列表,无法继续选择,退出
    
            elif key == 'b':                                            #如果传入的值是b,返回上层
                # print (len(y),y[-1].keys()keys,y[-2].keys())          #用于调试
                if len(ways)>1:
                    print('====>')
                    x=ways.pop()
    
                    return new_dic(x)                                   #y路径库判断,根据路径库当中路径数量,判断是否到顶层
                                                                        #如果没有到顶层,并且y中有两个或以上元素,
                                                                        # 将x赋值为倒数第二个路径(前一级列表),删除最后一个路径,返回
                elif len(ways)==1:                                      #如果到顶层,提供退出提示
                    print('顶层目录,按“q”退出')
                    return new_dic(ways[0])
            elif key == 'q':exit()
            else:
                print('wrong input!')
                return new_dic(zidian)
    
        except AttributeError:
            print('ending')
    
    
    
    new_dic(l_city)
    
    

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

  • 相关阅读:
    转: MySQL 赋予用户权限(grant %-远程和localhost-本地区别)
    修改Apache的最大连接数
    正向代理与反向代理的区别【Nginx读书笔记】
    mysql加单引号和不加单引号的性能比较
    mysql保存数据提示1366 Incorrect string value: ‘xF0x9Fx98x8AxF0x9F…’ 解决
    Mysql外键约束设置使用方法
    MYSQL分库分表和不停机更改表结构
    Hive SQL 常用日期
    CountDownLatch学习
    Exchanger学习
  • 原文地址:https://www.cnblogs.com/scott-lv/p/7468922.html
Copyright © 2011-2022 走看看