1 n1,a1,b1=0,0,1 2 while n1<6: 3 print(b1,end=' ') 4 a1,b1=b1,a1+b1 5 n1=n1+1 6 print() 7 8 n2,a2,b2=0,0,1 9 while n2<6: 10 print(b2,end=' ') 11 a2=b2 12 b2=a2+b2 13 n2=n2+1 14 ################################### 15 D:\untitled\project2\venv\Scripts\python.exe D:/untitled/project2/day1/342432.py 16 1 1 2 3 5 8 17 1 2 4 8 16 32 18 Process finished with exit code 0
可见上面的输出结果是不一样的。那么为什么呢?
a,b=b,a+b 这个公式是赋值运算,先右边的运算,然后再给左边的赋值。
1 a = 0 2 b = 1 3 a , b = b , a + b 4 # 这种赋值,先计算等值 右边 就是 b=1 a+b=0+1=1 5 # 再赋值给a和b,那么 a=1, b=1 6 # 然后就是依次这样 7 ################################# 8 a = b 9 # 此时a=1 10 b = a + b 11 # b=1+1=2