python 生成器函数_Python 生成器函数
def func():
print("我叫周润发")
return "林志玲" # return在函数中表示返回的意思
ret = func()
print("返回值是", ret)
# 函数中包含了yield, 此函数就是生成器函数
# 大坑: 生成器函数运行之后. 产生一个生成器. 而不是运行函数
def func():
print("我叫周润发")
yield "林志玲" # yield表示返回. 不会终止函数的执行
print("宝宝干嘛去了??")
yield "宝宝回来了"
print("宝宝你在干嘛?")
# yield "没了"
ret = func() # 执行函数, 此时没有运行函数.
# # 此时我们拿到的是生成器
print("返回值是", ret) #
# 执行到下一个yield
print(ret.__next__()) # 第一次执行__next__此时函数才开始执行
print(ret.__next__()) # 执行到下一个yield
print(ret.__next__()) # StopIteration
# 买衣服, JACK JONES 10000
def buy():
lst = []
for i in range(10000):
lst.append("衣服%s" % i)
return lst
lst = buy()
print(lst)
def buy():
for i in range(10000):
yield "衣服%s" % i
gen = buy() # 生成器或者迭代器的好处: 节省内存
print(gen.__next__())
print(gen.__next__())
print(gen.__next__())
for yifu in gen: #迭代器. __next__()
print(yifu)
lst = list(gen) # 内部使用的是for循环 -> __next__()
print(lst)
#
# send() -> __next__()
# send()可以给上一个yield位置传值
def func():
print("韭菜盒子")
a = yield "韭菜鸡蛋"
print("a", a)
b = yield "韭菜西红柿"
print("b", b)
c = yield "火烧"
print("c", c)
gen = func()
print(gen.__next__()) # 第一个位置用send没有任何意义
print(gen.send("篮球")) # 给上一个yield位置传值
print(gen.send("足球"))
def eat():
print("我吃什么啊")
a = yield "馒头"
print("a=",a)
b = yield "⼤饼"
print("b=",b)
c = yield "⾲菜盒⼦"
print("c=",c)
yield "GAME OVER"
gen = eat() # 获取⽣成器
ret1 = gen.__next__()
print(ret1)
ret2 = gen.send("胡辣汤")
print(ret2)
ret3 = gen.send("狗粮")
print(ret3)
ret4 = gen.send("猫粮")
print(ret4)
python 生成器函数_Python 生成器函数相关推荐
- python中的get函数_python之函数用法get()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法get() #http://www.runoob.com/python/att-dic ...
- python生成器迭代器_python 生成器 迭代器
阅读目录 一 递归和迭代 二 什么是迭代器协议 三 python中强大的for循环机制 四 为何要有for循环 五 生成器初探 六 生成器函数 七 生成器表达式和列表解析 八 生成器总结 一 递归和迭 ...
- python 生成器原理_python生成器
基础知识 生成器是python的一个特别特的特性,在许多场合都有重要应用.比如range函数产生的就是一个生成器.其主要的好处就是降低了内存的占用.为什么呢?拿range函数来讲吧,它的目的是生成一系 ...
- python generator类型_python生成器(Generator)
生成器是一种特殊的迭代器,它提供了自定义迭代器的一种方式.生成器最牛逼的特点就是对延迟操作的支持,一次只返回一个结果,然后状态挂起,以便下次从此状态开始继续执行. python中有两种类型的生成器:生 ...
- python生成器表达式_python 生成器和生成器表达式
1.生成器 生成器的本质就是迭代器 生成器的特点和迭代器一样.取值方式和迭代器一样(__next__(),send():给上一个yield传值) 生成器一般由生成器函数或者生成器表达式来创建 其实就是 ...
- python莫比乌斯环_python基础|函数
1 函数 在python中的函数,内置函数有很多,如:int(), str(), list(), dict(), set() 等内置整形函数,bool()内置布尔值函数,len()内置长度计算函数 , ...
- python 生成器 原理_python 生成器和迭代器的原理解析
一.生成器简介 在python中,生成器是根据某种算法边循环边计算的一种机制.主要就是用于操作大量数据的时候,一般我们会将操作的数据读入内存中处理,可以计算机的内存是比较宝贵的资源,我认为的当要处理的 ...
- 用python实现分段函数_python分段函数
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! segmentation fault (core dumped) python脚 ...
- python中随机数函数_Python随机数函数
摘要: 下文讲述Python代码中seed()函数的简介说明,如下所示: seed()函数功能 用于改变随机数生成器的种子, 常用于其它随机函数之前运行此函数 seed()函数语法 seed.seed ...
最新文章
- js-forEach 不能使用break continue return true false
- makefile格式-实践一
- 基于句子嵌入的无监督文本摘要(附代码实现)
- Spring事务的传播行为和隔离级别
- eclipse无法创建tomcat7.0的server
- android studio 1.2.1.1导入library project(以sharesdk为例)
- 【王道计组笔记】总线(4):总线操作和定时
- 【渝粤题库】陕西师范大学165101社会学 作业(高起专)
- “仿宋_GB2312、楷体_GB2312、方正小标宋简体”的下载和安装方式【实操】
- 爬取了bilibili站644w视频信息之后的故事。
- 基于阿里语音识别(ASR)C/C++ SDK2.0编写的unimrcp中间件
- 计算机无法找到wifi,笔记本无线网络找不到,教您怎么解决笔记本找不到无线网络...
- CocosCreator之绳索摆动效果
- 搭建网站服务器必须开443端口,HTTPS端口必须一定要443吗?
- 理解服务器证书 CASSL
- 2019下半年教资信息技术学科知识与教育能力——主观题
- UNI-APP 桌面LOGO角标设置(ios)
- tar解压时提示Cannot open: File exists
- java面试题(记录与分享)二
- 小菜鸟之oracle数据字典
热门文章
- 基元线程同步构造之waithandle中 waitone使用
- 插件原理[转自CSDN]
- 利用Crontab为Linux定时备份Mysql数据库
- 响应式系统的依赖收集追踪原理
- 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 情感分析
- Spring Data MongoDB示例
- Docker上部署GitLab , 搭建私有Git仓库 (基于Docker镜像sameersbn/docker-gitlab)
- 【Java】编写Java应用程序,完成从键盘输入圆的半径,求圆的周长和面积并输出结果的功能...
- Linux入门学习(七)
- 红黑树 平衡二叉搜索树_红黑树:自我平衡的二叉搜索树,并举例说明