为什么这个Python代码为相同的代码提供两个不同的输出或者两者都是不同的代码?

问题描述 投票:0回答:1

这是使用生成器函数打印斐波那契数列的Python代码。 代码1:

def test_fib(n):
a = 0
b = 1
for i in range(n):
    yield a
    a = b
    b = a+b
 #end of function
    
for t in test_fib(10):
    print(t)

代码1的输出:- 0 1 2 4 8 16 32 64 128 256 代码2:-

def test_fib(n):
a, b = 0, 1
for i in range(n):
    yield a
    a, b = b, a+b
#end of function
    
for i in test_fib(10):
    print(i)

代码2的输出:- 0 1 1 2 3 5 8 13 21 34

python function for-loop generator yield
1个回答
0
投票

第一个代码只是将 b 加倍,因为我们首先将 a 设置为 b。 第二个代码使用元组解包,因此分配是使用以前的值完成的,因此它实际上为我们提供了斐波那契数列。

© www.soinside.com 2019 - 2024. All rights reserved.