def fib(max):
n, a, b = 0, 0, 1
while n < max:
print(b)
a, b = b, a + b
n = n + 1
return 'done'
这里的a, b = b, a + b理解不了,求大神详细解释
Leo_clip
浏览 2102回答 1
1回答
Iamxiaoq
# 交换两个变量的值,在其他语言中需要借助第三个变量,比如
a = 1
b = 2
# 借助第三个变量,实现交换两个变量的值
t = a
a = b
b = t
# 在Python中有更简洁的实现
a,b = b,a
# 再尝试理解一下 a, b = b, a+b ,这个表达式会先计算赋值符号右边的值 (b,a+b) --> (2, 1+2)
# 再把结果赋值给左边的a,b--> a=2, b=3
等号左边第1位=右边第1位等号左边第2位=右边第2位注意,右边采用的值是运算前的值。例如下边最后 b = b+a = 10+6,这里a=6。(虽然a=b时,a变成了10,但计算b时,沿用a原值,而不是改变的值。)a = 6
b = 10
c = 7
a, b, c = b, b + a, c + 2
print(a, b, c)
打印的值为:10 16 9python是先把右边的值全计算出来,再一一给左边。