a, b, n = 0, 1, 500
while a < n:
print(a)
a, b = b, a+b
和
a, b, n = 0, 1, 500
while a < n:
print(a)
a = b
b = a+b
两者都给出不同的输出。
a, b = b, a+b
和a = b; b = a+b
有什么区别?
答案 0 :(得分:1)
下面的代码就像交换。
a, b = b, a+b
就像这样做
temp = a
a = b
b = temp + b
答案 1 :(得分:0)
a, b = b, a+b
等同于
tmp = a
a = b
b = tmp+b
答案 2 :(得分:0)
这不是逗号分隔的值。您正在执行元组拆包。
a, b, n = 0, 1, 500
与:
a, b, n = (0, 1, 500)
它们不同的原因是第一行将b
分配给a
,然后将a和b加在一起。它基本上与:
a = b
b = a+b
答案 3 :(得分:0)
a, b, n = 0, 1, 500
while a < n:
print(a)
a = b
b = a+b
在上面的代码行中-在print(a)之后,会将b变量中的代码值分配给第一个变量,因此a的值将被更新,并且a的更新值将用于b = a + b < / p>
假设a = 0,b = 1。因此,在print(a)之后,a的值将首先为1,b的值为1 + 1 = 2。
而
a, b, n = 0, 1, 500
while a < n:
print(a)
a, b = b, a+b
在上面的代码中,在print(a)之后,同时分配了a和b值。在这种情况下,将在print(a)中打印的任何a值都将用于进一步为a分配值。
假设a = 0和b = 1, 在print(a)首先打印0之后,a中的值为1,b中的值为0 + 1 = 1,因为b = a + b将使用= 0而不是a = 1。