一.昨日内容回顾

  1.函数名

   函数名是一个变量名

       

   可以作为集合类的元素

   可以作为参数进行传递

   def  func(fn):

     fn()

   可以作为返回值返回

   def outer():

     def inner():

       xxx

       return inner

  2.闭包

   内层函数对外层函数的变量的访问

    def  outer():

      a = 10

      def inner():

        print(a)

        return  inner

     ret  =  outer()

     xxxxxx

    ret()

    

    作用:

      1.保护变量:   局部变量    自己函数中访问

      2.让一个变量常驻内存

   3.迭代器

    特点:

      1.省内存

      2.惰性机制,不访问__next__()  就没有值

      3.只能向前,不能反复

      在数据中包含了__iter__() 可迭代对象

    如果包含了__next__()  迭代器

    "__iter__" in dir (数据)

    "__next__" in dir (数据)

    from collections import Iterable ,Iterator

    Iterable :可迭代的

    Iterator: 迭代器

    isinstance(对象,类型)

二.今日主要内容

  迭代器

    __iter__() 获取迭代器

    __next__() 下一个

    

  生成器

    本质就是迭代器

    两种方式写生成器

      1.生成器函数

      2.生成器表达式

  

  生成器函数

    函数内部有yield,yield 返回 -> return

    yield可以把函数分段执行

    生成器函数被调用的时候,返回生成器

    def dunc():

      yield

    g = func() - 得到生成器

  

    生成器的用法和迭代器基本一致

    __next__() 开始执行生成器,执行到yield,直到没有yield,抛出StopIteration

    

    send() 可以给上一个yield传值

    

    1.省内存

    2.惰性机制,不访问__next__() 就没有值

    3.只能向前,不能反复

  各种推导式(简单)

    列表推导式[结果  for循环  if判断]

    字典推导式{key:value for循环  if判断}

    集合推导式 {key for循环  if判断}

  生成器表达式(最难)

    (结果  for循环  if 判断)

    惰性机制,  不访问__next__()  就没有值

    只能向前,不能反复

day12 Pyhton学习的更多相关文章

  1. Pyhton学习——Day26

    #多态:多态指的是一类事物有多种形态# import abc# class Animal(metaclass = abc.ABCMeta):# 同一类事物:动物# @abc.abstractclass ...

  2. pyhton 学习

    官方学习文档 https://docs.python.org/3/tutorial/

  3. 20190320_head first pyhton学习笔记之构建发布

    1.把代码nester.py放入文件夹nester中,在文件夹中再新建一个setup.py文件,文件内容如下: from distutils.core import setup setup( name ...

  4. Pyhton学习——Day2

    Python开发IDE(工具)Pycharm.eclipse1.循环while 条件 #循环体 #条件为真则执行 #条件为假则执行break用于退出所有循环continue用于退出当前循环 2.Pyc ...

  5. Pyhton学习——Day28

    #上下文协议:文件操作时使用with执行# with open('a.txt','w',encoding='utf-8') as f1:# with语句,为了让一个对象兼容with语句,必须在这个对象 ...

  6. Pyhton学习——Day27

    # hasattr(obj,'name')-->obj.name# getattr(obj,'name',default = 'xxx')--->obj.name# setattr(obj ...

  7. Pyhton学习——Day25

    #面向对象的几个方法#1.静态方法@staticmethod,不能访问类属性,也不能访问实例属性,只是类的工具包#2.类方法:@classmethod,在函数属性前加上类方法,显示为(cls)代表类, ...

  8. Pyhton学习——Day24

    # #面向对象设计:# def dog(name,gender,type):# def jiao(dog):# print('One Dog[%s],wfwfwf'%dog['name'])# def ...

  9. Pyhton学习——Day23

    #re模块方法:findall search#findall:返回所有满足匹配条件的数值,放在列表里#search : #函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象 ...

随机推荐

  1. 查看CentOs6.5/7的系统版本号

    在centos6.5上用 [root@msg45 ~]# lsb_release -aLSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0- ...

  2. 转载:Window配置Redis环境和简单使用

    原作:https://www.cnblogs.com/wxjnew/p/9160855.html 我自己的尝试:https://www.cnblogs.com/xiandedanteng/p/1214 ...

  3. C#中SQL Server的几点注意事项

     背景 在C#中处理sql会遇到一些奇怪的问题,在这里做一个小的总结,内容会随着经历不断积累. 内容 1.DataTime?和DataTime的区别. DataTime?定义的数据为可空类型,允许其为 ...

  4. graph attention network(ICLR2018)官方代码详解(tensorflow)-稀疏矩阵版

    论文地址:https://arxiv.org/abs/1710.10903 代码地址: https://github.com/Diego999/pyGAT 之前非稀疏矩阵版的解读:https://ww ...

  5. Java枚举解读

    Java枚举 枚举类概念的理解与定义 一个类的对象是有限个,确定的,我们称此为枚举类. 当需要定义和维护一组常量时,强烈建议使用枚举类. 如果一个枚举类中只有一个对象,则可以作为单例模式的实现方式. ...

  6. JAVA热部署,通过agent进行代码增量热替换!!!

    在前说明:好久没有更新博客了,这一年在公司做了好多事情,包括代码分析和热部署替换等黑科技,一直没有时间来进行落地写出一些一文章来,甚是可惜,趁着中午睡觉的时间补一篇介绍性的文章吧. 首先热部署的场景是 ...

  7. 第2课 - Hello, DTOS!

    第2课 - Hello, DTOS! 1. 主引导程序 主引导程序是软件还是固件?如果是软件,那么由谁开发?如何开发? (1)上一节说到了固件和软件的区别.由于主引导程序没有在出厂前固化到硬件中,因此 ...

  8. FTP服务器稳定性测试

    FTP服务器稳定性探讨,如何部署FTP服务在server2003上,可能广大网友们有其他的选择,我选择的是Filezilla server.毕竟他是开源又免费 在架构师的悉心指导下,对FTP有了个更深 ...

  9. Windows10上安装MySQL(详细)

    一.下载MySQL 1.在浏览器里打开mysql的官网http://www.mysql.com 2.进入页面顶部的"Downloads" 3.下滑页面,打开页面底部的"C ...

  10. 刷题 [网鼎杯 2018]Fakebook

    解题思路 首先登陆页面发现是这样的: 查看源码 源码很正常,也没有什么特别的 web目录扫描 我用的是dirmap工具扫描,扫描结果保存在一个txt文件中,结果可知没什么后台. robots.txt ...