斐波那锲数列的海量输出问题

def fab(max):
    a , b , n = 0 , 1 ,0
    while n < max:
        a , b = b , a + b
        n = n + 1
        print(a,end = " ")
print(fab(10))
输出:
1 1 2 3 5 8 13 21 34 55

yield 的应用,当max的值不断增大时会增加内存的消耗,所以当输出的数据量非常大时,我们就可以使用 yield ,它的作用就是每次执行时输出一个数,占用内存小。每次输出一个后,继续运行代码,继续输出。

def fab(max):
    a , b , n = 0 , 1 ,0
    while n < max:
        a , b = b , a + b
        n = n + 1
        yield a
for x in fab(100):
    print(x,end = " ")
全部评论

相关推荐

点赞 评论 收藏
分享
小红书 后端选手 n*16*1.18+签字费期权
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务