一.昨日内容回顾

  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. Mybatis----Mapper配置文件

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...

  2. JVM-虚拟机执行子系统

    类的加载由JVM执行引擎来完成 早期--编译期:源代码文件*.java -> 词法分析器 -> tokens流 -> 语法分析器 -> 语法树/抽象语法树 -> 语义分析 ...

  3. 谈谈 mysql和oracle的使用感受 -- 差异

    之前一直使用mysql作为存储数据库,虽然中间偶尔使用sqlite作为本地数据库存储,但没有感觉多少差别. 后来遇上了oracle,且以其作为主要存储,这下就不得不好好了解其东西了.oracle作为商 ...

  4. oracle之字符集

    全球化特性与字符集 数据库的全球化特性是数据库发展的必然结果,位于不同地区.不同国家.不用语言而使用同一数据库越来越普遍.Oracle数据库提供了对全球化数据库的支持,消除不同文字.语言环境.历法货币 ...

  5. 老男孩教育python全栈第22期Day15笔记

    day15 今日内容大纲 昨日内容回顾作业讲解 装饰器:完美的呈现了开放封闭原则.装饰器的本质:闭包. def wraper(f): def inner(*args, **kwargs): " ...

  6. docker部署Broketrmq集群

    部署Broketrmq集群 通过docker-compose形式部署 首先创建 broker 配置文件,配置文件如下: brokerClusterName = DefaultCluster #集群名 ...

  7. matlab数字图像简单的加密方法

    图像加密的重要性可想而知,每个人都会有自己的小秘密,通过图像加密的方法可以保护自己的照片等的安全. 一般情况下,图像加密可以分为以下几个步骤: 1.选择图像加密算法 2.根据算法获取秘钥 3.根据保存 ...

  8. turtle角度坐标体系

    seth()改变海龟的行进角度 例如 让海龟的方向朝着45°方向行进 turtle.seth(45) 让海龟的方向朝着-135°反方向行进 turtle.seth(-135) turtle.left( ...

  9. redis之哨兵部署运行日志解读

    转载自http://www.run-debug.com/?p=674 192.168.110.21 主 192.168.110.31 从 #两台服务器都安装redis #下载最新稳定版本:http:/ ...

  10. 5.Topic与Partition