本周知识总结

生成器 — 迭代器

    1.生成器函数 —— 函数内部含有  yield  关键字

    #  函数的调用返回一个生成器

    #  从生成器中取值的方法和从迭代器中取值的方法是完全相同的

    #  next — 不太常用 是因为for循坏替你做了这件事

    # for   — 最好, list — 最不好

    # 在定义生成器的时候 , 关键字 : yield

    # 在使用生成器的时候 : next , send    # send可以把一个值作为信号传入到函数中去

     2. 生成器表达式

    # 就是将列表推导式的中括号改成小括号

    # 列表推导式的结果是一个列表,生成器的表达式的结果是一个生成器

     3. 生成器作为面试题

    # 生成器中的内容不获取就不生成运算 — 惰性运算

  注意事项:

       (1): next  for   list 不要混用

生成器函数和装饰器函数一起用

    # 预激生成器的装饰器,在这个装饰器中只做一件事:next(g) 

      4.递归

    #什么是递归 : 一个函数在内部调用自己

    解耦: 要完成一个完整的功能,但这个功能的规模要尽量小,并且和这个功能无关的其他代码应该和这个函数分离

     递归: 1. 增强了代码的重用性   2. 减少代码变更的相互影响

     写递归函数必须要有一个结束条件

      5. 匿名函数(lambda)

      # lambda  只是一个表达式,函数体比def简单很多

      # lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去

      # lambda 函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数

       6. 内置函数

       作用域相关(2):locals 局部 globas  全局

       迭代器/生成器相关(3): iter  next   range

       字符串类型代码的执行(3):eval(没有返回值) exec(永远没有返回值) complie(编译)

       输出和输入(2):print  input(尽量输入提示符)

       内存相关(2):hash(结果是一个数字) id(身份运算)

       文件操作相关:open

       模块相关:import

       帮助:help

       调用相关:callable(判断一个变量是否可以调用)

       查看内置属性:dir

       相关内置函数:filter(过滤)  map  sorted

       数据类型(4):bool  int float  compler  强制转换

       进制转换(3):bin(二进制) oct(八进制)  hex(十六进制)

       数字运算: abs(计算绝对值)  divmod(返回除余)   round(小数的精确)    pow(幂运算)    sum(求和)     min(计算最小值)

                          max(计算最大值)

       列表和元组(2):list  tuple  强转

       相关内置函数(2):reversed    slice

       字符串(9): str   format   bytes   bytearray   memoryview   ord   chr   ascii   repr

    

        

       

   

      

posted @ 2017-09-10 13:58  敌说  阅读(109)  评论(0编辑  收藏  举报