在Python2.7文档中滚动我发现了这个片段
def fib(n): # write Fibonacci series up to n
a, b = 0, 1
while b < n:
print a,
a, b = b, a+b
但我不明白最后一句话,也不知道该怎么用谷歌搜索。
?
最佳答案
Python首先计算赋值的右边。It evaluates
b, a+b
从左到右。然后将值分别赋给变量
a
和b
。所以
a, b = b, a+b
等于c = b
d = a+b
a = c
b = d
只不过它在没有显式临时变量的情况下实现了结果。
查看Pythonevaluation order上的文档。
这里有一个微妙的点值得用一个例子来研究。假设a=1,b=2。
a, b = b, a+b
相当于
a, b = 2, 1+2
a, b = 2, 3
所以
a
被分配到2,b
被分配到3。注意,这不等于
a = b
b = a + b
因为第一行将指定
a = 2
b = 2 + 2 = 4
。。
关于python - Python语法说明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22795165/