所以我的问题是关于“a, b=b, a+b
”行以及“a,b = 0,1
”行
这些线是什么意思,他们在做什么?
def fib2(n):
result = []
a, b = 0, 1
while a < n:
result.append(a)
a, b = b, a+b
return result
答案 0 :(得分:0)
a, b=b, a+b
是多次分配语句。在这样的陈述中,右侧的表达式都被评估
在任何任务发生之前。右侧表达式从左到右进行评估。
a,b=0,1
的情况类似,其中a
获取0
而b
获得1
。
答案 1 :(得分:-1)
a, b=b, a+b # is described as
temp = a
a = b
b= temp + b
如果你在shell中查看a,b = 0,1
In [37]: a,b = 0,1
In [38]: a,b
Out[38]: (0, 1)
In [40]: type((a, b))
Out[40]: tuple
In [41]: a
Out[41]: 0
In [42]: b
Out[42]: 1
所以它只是将变量赋值给元组值