gpt4 book ai didi

Python3变量自增和赋值

转载 作者:行者123 更新时间:2023-12-01 09:14:55 27 4
gpt4 key购买 nike

我正在用 python3 编写这个斐波那契生成器函数:

def fibo(n):
a = b = 1

for i in range(n):
yield a
a,b = b,a + b

for x in fibo(10):
print(x)

上面的代码给出:11235813213455

但是,

def fibo(n):
a = b = 1

for i in range(n):
yield a
a = b
b = a + b

for x in fibo(10):
print(x)

上面的代码给出:11248163264128256

唯一的区别是将 b 分配给 a 和将 a+b 分配给 b 发生在同一行在第一个代码中。这对输出有何影响?

最佳答案

在第二个代码示例中,有两行

a = b
b = a + b

具有以下效果:

  1. b分配给a
  2. a+b 分配给 b,因为 a 等于 b,因此与将 b+b 分配给 相同b(或加倍 b)

因此,效果是每个产量是前一个产量的两倍,您已通过示例输出显示了这一点。

在第一个示例中,您使用元组打包同时分配 a 和 b,并且 = 右侧的所有内容都会在每次分配之前进行评估。

关于Python3变量自增和赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51351796/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com