首页 > 编程语言 >python 生成器

python 生成器

时间:2023-03-08 17:33:21浏览次数:33  
标签:__ python 生成器 send next yield print

生成器

生成器是用来生成数据的一个办法

yield关键字

yield相当于是return,当函数运行到这里之后会暂停,并且返回后面的变量给调用的位置
yield是没有返回值的,所以 num = yield a,这个时候num的值是None
next()函数可以使函数接着运行下去
每一次next()都会使程序运行下去并且在此停止在yield关键字的地方,直到下次再调用

生成器的几个方法
close():

g=(i for i in range(5))
print(g.__next__())
print(g.__next__())
print(g.__next__())
g.close()
生成器这时候会关闭

send():
send和next一样都会让yield继续开始,并在下一次yield的地方暂停
send可以向生成器内部传递参数
传递参数之前必须让生成器执行一次next,使生成器暂停在yield位置

def demo():
    for i in range(10):
        res=yield i
        print('send传入的数据,',res)

g=demo()
print('next生成的数据:',next(g))
print('send生成的数据:',g.send(6))
output:
next生成的数据: 0
send传入的数据, 6
send生成的数据: 1
#next使程序先运行到res=yield i,输出一次
#这时候数字6传入,函数继续运行,输出demo里面的打印函数
#之后主程序的最后一条打印函数运行

标签:__,python,生成器,send,next,yield,print
From: https://www.cnblogs.com/niko5960/p/17195455.html

相关文章

  • 在使用vue2项目中运行 npm install gyp verb check python checking for Python execu
    这个错误是因为在运行npminstall命令时,需要安装某些Node.js模块的本机代码(NativeCode)并编译它们,而这些模块的编译需要使用Python2。解决这个问题的方法是:确认你......
  • python创建线程传参误区记录
    创建线程可以使用threading模块中的Thread方法;其中Thread方法允许的参数如下:(self,group=None,target=None,name=None,args=(),kwargs=None,*,daemon=None)这个构......
  • python基础
    1、type()语句 通过type()语句来得到数据的类型,能查看变量中存储的数据类型。 查看的是:变量储存的数据的类型。因为,变量无类型,但是它存储的数据有。 语法:type(被查......
  • 【流畅的Python0101】Python数据模型
    1.特殊方法示例:一摞Python风格的纸牌importcollectionsCard=collections.namedtuple('Card',['rank','suit'])classFrenchDeck:#Python2中要写成FrenchDeck(......
  • python学习-第三方库综合程序设计实验报告
    目录实验四: Python综合程序设计实验名称:Python综合程序设计              指导教师:      实验日期:2022年 12 月 5 日......
  • linux检测程序运行时间和内存峰值 Python脚本
    #!/usr/bin/envpython3#-*-encoding:utf-8-*-importsubprocessasspimportsysimporttimedefget_mem(pid):c=sp.Popen(['ps','-aux'],stdout=sp......
  • Python学习笔记:str.zfill补全位数
    一、介绍zfill函数用于在字符串的开头添加零,直到达到指定的长度。如果len参数的值小于字符串的长度,则不执行填充。具体使用语法为:str.zfill(len)如果是整型、浮点......
  • python自动化基础-花样输出
    彩色输出程序deflog():w='\x1b[1;33;40m'+'内容'+'\x1b[0m'print(w)v='\033[0;32;40m'+'内容'+'\033[0m'print(v)if__name__=......
  • Ubuntu 更换Python版本相关
    错误做法:卸载Python3Python是linux系统的底层应用,卸载Python3容易出现各种各样的问题。错误做法sudoaptremovepython3sudoaptautoremove遇到问题1:卸载了火狐浏......
  • python 提取csv文件内容遇到ufeff非法字符
    目录python提取csv文件内容遇到ufeff非法字符处理探测编码格式类型python提取csv文件内容遇到ufeff非法字符使用python3提取csv文件的时候,提取来的数据用set去重后发现......