无法理解用于分配变量的python语法

时间:2017-06-14 19:14:28

标签: python debugging syntax fibonacci

我正在从python

看这个斐波纳契序列程序
#!/usr/bin/python3

# simple fibonacci series
# the sum of two elements defines the next set
a, b = 0, 1
while b < 50:
    print(b)
    a, b = b, a + b
print("Done")

结果输出如下所示:1, 1, 2 ,3 ,5 ,8 ,13 ,21, 34, Done

我对a, b = b, a + b

的语法感到有些困惑

更广泛的等效版本是什么?

编辑答案

好的,在阅读完之后,下面是一种等效方式,c临时占位符可以抓取原始a

#!/usr/bin/python3

# simple fibonacci series
# the sum of two elements defines the next set
a = 0
b = 1
c = 0
while b < 50:
    print(b)
    c = a
    a = b
    b = a + c
print("Done")

此处有更多方法:Is there a standardized method to swap two variables in Python?,包括元组,xor和temp变量(如此处所示)

1 个答案:

答案 0 :(得分:1)

a, b = b, a + b

相当于

a = b; b = a + b,除非在分配给a时使用b的新值,而不是预期的原始值。