斐波那锲数列的海量输出问题
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 = " ")