【发布时间】:2022-01-19 17:04:47
【问题描述】:
伙计们,我正在尝试打印斐波那契数列的前 8 个元素,并且只想了解一段代码。在单行(n1,n2 = n2,n1+ n2)中执行赋值操作时,代码工作正常,但是当将相同的赋值操作拆分为单独的行(如(n2 = n1+n2 和 n1=n2)时,我得到不同结果和代码无法正常工作,请解释一下原因?
def generate_fibonacci():
n1 = 0
n2 = 1
while True:
yield n1
n1,n2 = n2, n1+ n2 // this piece of code doesn't work properly when separating it
# n2 = n1 + n2
# n1 = n2
seq = generate_fibonacci()
for i in range(8):
print(next(seq))
【问题讨论】:
-
如果您拆分该行,那么您第二次执行的部分将使用第一部分中变量的 新 值,而不是旧值。
-
分开行时,取n2的最新值(n1+n2),赋值给n1
-
n1,n2 = n2, n1+ n2使用此代码,n1被分配给n2的 original 值。
标签: python variable-assignment