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 生成器函数相关推荐

  1. python中的get函数_python之函数用法get()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法get() #http://www.runoob.com/python/att-dic ...

  2. python生成器迭代器_python 生成器 迭代器

    阅读目录 一 递归和迭代 二 什么是迭代器协议 三 python中强大的for循环机制 四 为何要有for循环 五 生成器初探 六 生成器函数 七 生成器表达式和列表解析 八 生成器总结 一 递归和迭 ...

  3. python 生成器原理_python生成器

    基础知识 生成器是python的一个特别特的特性,在许多场合都有重要应用.比如range函数产生的就是一个生成器.其主要的好处就是降低了内存的占用.为什么呢?拿range函数来讲吧,它的目的是生成一系 ...

  4. python generator类型_python生成器(Generator)

    生成器是一种特殊的迭代器,它提供了自定义迭代器的一种方式.生成器最牛逼的特点就是对延迟操作的支持,一次只返回一个结果,然后状态挂起,以便下次从此状态开始继续执行. python中有两种类型的生成器:生 ...

  5. python生成器表达式_python 生成器和生成器表达式

    1.生成器 生成器的本质就是迭代器 生成器的特点和迭代器一样.取值方式和迭代器一样(__next__(),send():给上一个yield传值) 生成器一般由生成器函数或者生成器表达式来创建 其实就是 ...

  6. python莫比乌斯环_python基础|函数

    1 函数 在python中的函数,内置函数有很多,如:int(), str(), list(), dict(), set() 等内置整形函数,bool()内置布尔值函数,len()内置长度计算函数 , ...

  7. python 生成器 原理_python 生成器和迭代器的原理解析

    一.生成器简介 在python中,生成器是根据某种算法边循环边计算的一种机制.主要就是用于操作大量数据的时候,一般我们会将操作的数据读入内存中处理,可以计算机的内存是比较宝贵的资源,我认为的当要处理的 ...

  8. 用python实现分段函数_python分段函数

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! segmentation fault (core dumped) python脚 ...

  9. python中随机数函数_Python随机数函数

    摘要: 下文讲述Python代码中seed()函数的简介说明,如下所示: seed()函数功能 用于改变随机数生成器的种子, 常用于其它随机函数之前运行此函数 seed()函数语法 seed.seed ...

最新文章

  1. js-forEach 不能使用break continue return true false
  2. makefile格式-实践一
  3. 基于句子嵌入的无监督文本摘要(附代码实现)
  4. Spring事务的传播行为和隔离级别
  5. eclipse无法创建tomcat7.0的server
  6. android studio 1.2.1.1导入library project(以sharesdk为例)
  7. 【王道计组笔记】总线(4):总线操作和定时
  8. 【渝粤题库】陕西师范大学165101社会学 作业(高起专)
  9. “仿宋_GB2312、楷体_GB2312、方正小标宋简体”的下载和安装方式【实操】
  10. 爬取了bilibili站644w视频信息之后的故事。
  11. 基于阿里语音识别(ASR)C/C++ SDK2.0编写的unimrcp中间件
  12. 计算机无法找到wifi,笔记本无线网络找不到,教您怎么解决笔记本找不到无线网络...
  13. CocosCreator之绳索摆动效果
  14. 搭建网站服务器必须开443端口,HTTPS端口必须一定要443吗?
  15. 理解服务器证书 CASSL
  16. 2019下半年教资信息技术学科知识与教育能力——主观题
  17. UNI-APP 桌面LOGO角标设置(ios)
  18. tar解压时提示Cannot open: File exists
  19. java面试题(记录与分享)二
  20. 小菜鸟之oracle数据字典

热门文章

  1. 基元线程同步构造之waithandle中 waitone使用
  2. 插件原理[转自CSDN]
  3. 利用Crontab为Linux定时备份Mysql数据库
  4. 响应式系统的依赖收集追踪原理
  5. 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 情感分析
  6. Spring Data MongoDB示例
  7. Docker上部署GitLab , 搭建私有Git仓库 (基于Docker镜像sameersbn/docker-gitlab)
  8. 【Java】编写Java应用程序,完成从键盘输入圆的半径,求圆的周长和面积并输出结果的功能...
  9. Linux入门学习(七)
  10. 红黑树 平衡二叉搜索树_红黑树:自我平衡的二叉搜索树,并举例说明