def fibonacci(num):
a=0
b=1
for i in range(num):
a, b=b, a+b
print a
循环内的线是如何工作的?不知何故 a & b 的价值观发生了变化,似乎可以理解..
编辑:出于某种原因,我感到困惑,认为 b=b 的中间 exp 是新东西......没读好......它真的是 (a,b) = (b, a+b) 这是python中交换的基本形式(:
b, a+b
创建一个元组
这个元组被解包回a
并b
这一行a, b = b, a+b
等价于(a, b) = (b, a+b)
,它是一个元组赋值。
有问题的行可以更清楚地写成(通过右侧的元组打包和左侧的序列解包):
(a, b) = (b, a + b)
由于对 a 和 b 的分配是并行执行的,因此这与以下内容完全相同:
new_a = b
new_b = a + b
a = new_a
b = new_b