博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
斐波那契数列---函数与生成器
阅读量:5102 次
发布时间:2019-06-13

本文共 692 字,大约阅读时间需要 2 分钟。

首先之前学了函数

显示函数的形式:

def fib(max):

      n,a,b = 0,0,1

      while n < max

            print(b)

            a,b = b,a+b

            n = n+1

      return 'done'

f = fib(10)

print(f)

这时候,这一串代码代表一个函数,fib(max)代表一个附带参数的函数 ,并且返回值是done,所以当出现fib(10)时,他就会将参数传给max,然后运行,所以会将所有值打出来,然后print(f)是done。

那么如何将一个函数变成一个生成器呢?

将print(b)改为yield b即可

def fib(max)

      n,a,b = 0,0,1

      while n<max:

           yield b

           a,b=b,a+b

           n=n+1

       return 'done'

f = fib(10)

print(f)

for i in f:

     print(i)

这时候就变成一个生成器了,后面的执行结果为:<generator object fib at 0x000000000BAD3AF0>,和一串数。

我们如何调用呢?

一种方法:

print(f.__next__())  ,双下划线。当出现这个的时候,其实是生成器还没有开始运行,然后出现一个运行一步再跳出来。这时候我们可以在运行下一步之前我们进行一些新的功能。比如:

 

print(f.__next__())

print("------------") 
print(f.__next__())

 

 

 

转载于:https://www.cnblogs.com/zaizaiaipython/p/7821852.html

你可能感兴趣的文章
Javascript模块化编程(二)AMD规范(规范使用模块)
查看>>
Mysqli封装
查看>>
python正则表达式
查看>>
mongodb 集合操作 (增删改查)
查看>>
Flask应用错误处理
查看>>
铁乐学python_day29_模块与包学习4
查看>>
老李分享云计算基本概念 2
查看>>
大数据测试之hadoop命令大全
查看>>
老李分享:《Linux Shell脚本攻略》 要点(二)
查看>>
软件开发目录规范
查看>>
windows7 shift+右键 “在此处打开命令窗口”
查看>>
面向服务架构十大技术与基础理论
查看>>
生活中的思维风暴——读《谁是谷歌想要的人才》精彩题目小记(二)
查看>>
#np.random.normal,产生制定分布的数集(默认是标准正态分布)
查看>>
06:数学
查看>>
Python Error: “ImportError: No module named six”,用自动安装解决依赖问题
查看>>
餐馆王第一天
查看>>
sublime中文件前缀的自动添加
查看>>
python 科学计数法转数值
查看>>
爱的十个秘密--8.沟通的力量
查看>>