Python菜鸟--生成器

文章介绍了Python中的生成器函数,特别强调了yield关键字的作用,它使得函数能在运行过程中暂停并返回值。通过countdown和fib两个示例,展示了生成器如何逐步生成序列,如倒计时和斐波那契数列,而无需一次性计算所有结果。
摘要由CSDN通过智能技术生成
def countdown(n):
    while n>0:
        yield n
        n -= 1
gen = countdown(5)
for x in gen:
    print(x)

结果为5 4 3 2 1(换行)

yield 是一个关键字,用于定义生成器函数,生成器函数是一种特殊的函数,可以在迭代过程中逐步产生值,而不是一次性返回所有结果。

跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

当在生成器函数中使用 yield 语句时,函数的执行将会暂停,并将 yield 后面的表达式作为当前迭代的值返回。

然后,每次调用生成器的 next() 方法或使用 for 循环进行迭代时,函数会从上次暂停的地方继续执行,直到再次遇到 yield 语句。这样,生成器函数可以逐步产生值,而不需要一次性计算并返回所有结果。

斐波那契数列

def fib(n):
    a,b,count = 0,1,0
    while count<=n:
        yield a
        a,b = b,a+b
        count+=1
result = fib(10)
for x in result:
    print(x,end=" ")

结果:0 1 1 2 3 5 8 13 21 34 55 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值