一.昨日内容回顾

  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. Java类加载机制()

    Java类加载机制(转载) 概述 在开始正文之前,我们先看两张图 .Java平台的理解?Java最显著的特性?Java是解释执行? 先看一下java程序的执行流程图 再看一下jvm的大致物理结构图 本 ...

  2. C#开发PACS医学影像处理系统(十二):绘图处理之图形标记

    在医生实际使用过程中,对于有病灶的影像需要一些2D绘图操作,例如对于病灶的标记和测量, 这就牵涉到在WPF中的2D绘图操作技术,一般的思路是监听鼠标的按下和抬起以及运动轨迹,目前整理出的常用绘图和测量 ...

  3. Azure Cosmos DB介绍及演示

    Azure Cosmos DB 是 Microsoft 提供的全球分布式多模型数据库服务.Cosmos DB是一种NoSql数据库,但是它兼容多种API.它支持SQL, MongoDB.Cassand ...

  4. matlab中矩阵的表示与简单操作

    原文地址为:matlab矩阵的表示和简单操作 一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在”[ ]”内: b.矩阵的同行元素之间用空格(或”,”)隔开: c.矩阵的行与行之间 ...

  5. 查看 JVM 参数的默认值

    查看初始默认值:-XX:+PrintFlagsInitial HuandeMacBook-Air:~ huanliu$ java -XX:+PrintFlagsInitial [Global flag ...

  6. mysql 事务、隔离级别

    一.事务的四大特性(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...

  7. 微服务实战系列(四)-注册中心springcloud alibaba nacos

    1.场景描述 因要用到微服务,关于注册中心这块,与同事在技术原型上做了讨论,初步定的方案是使用:阿里巴巴的nacos+springcloud gateway,下面表格是同事整理的注册中心对比,以前用的 ...

  8. 吴恩达-机器学习+正则化regularization

  9. 浅谈Vue中计算属性computed的实现原理

    虽然目前的技术栈已由Vue转到了React,但从之前使用Vue开发的多个项目实际经历来看还是非常愉悦的,Vue文档清晰规范,api设计简洁高效,对前端开发人员友好,上手快,甚至个人认为在很多场景使用V ...

  10. This is Riv3r1and.

    总是要弄个博客来搞的嘛.