一.昨日内容回顾

  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. vue-devtools-4.1.4_0.crx及Vue.js not detected的问题

    谷歌-更多工具-扩展程序 Vue.js not detected的问题

  2. 一个极简Jsp工程下载

    下载地址:https://files.cnblogs.com/files/xiandedanteng/SimpleJspWebApp20191227.zip 要得到war文件,右键点项目->Ex ...

  3. i春秋公益赛之signin

    题目链接:https://buuoj.cn/challenges#gyctf_2020_signin 查看程序保护 只开了canary和NX保护,在IDA查看反编译出来的为代码时发现程序给了一个后门 ...

  4. Spring 框架(持续完善中)

    目录标题 一.Spring 框架 Spring 是什么? Spring Framework 核心概念 了解Spring 框架的架构图 二.Spring Framework 之 IOC 开发的步骤流程 ...

  5. nginx安装步骤和加固方案

    安装步骤参考https://blog.csdn.net/qq_37345604/article/details/90034424 出现以下页面就表示安装完成(默认是80端口,我修改成了8009端口,所 ...

  6. [LeetCode]617. 合并二叉树(递归)

    ###题目 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠. 你需要将他们合并为一个新的二叉树.合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新 ...

  7. EAM在不同行业的应用

    EAM在不同行业的应用 EAM从出现至今,已让很多资产密集型企业受益,甚至在一些行业领域里已经是公认的.不可或缺的管理方案,比如电力行业.轨道交通行业等.但由于不同行业或者企业业务类型不同,导致了资产 ...

  8. [go语言]-深入理解singleflight

    目录 前言 singleflight使用场景 singleflight 简介 singleflight的使用 从singleflight的test最简单用法 验证并发重复请求 singleflight ...

  9. 安装Windows10操作系统 - 初学者系列 - 学习者系列文章

    今天无事,就将安装操作系统的几种方式进行了总结( https://www.cnblogs.com/lzhdim/p/13719725.html ).这篇博文主要是对安装windows10操作系统的过程 ...

  10. Linux的MySQL安装方法

    第一种: APT方式安装 在ubuntu系统的apt软件仓库中,默认存在MySQL数据库 在用户模式下使用命令:  apt/apt-get install mysql-server mysql-cli ...