在最近学的Python斐波那契数列(Fibonacci sequence)中遇到了这么一个奇怪的赋值计算方式,a , b =b ,a + b:
源代码如下:
1 | import sys |
输出结果如是:
1 | D:\Program Files\Python37\python.exe" E:/python/LearnProject/FileOpration.py |
将以上源代码中a , b = b ,a + b 换成 a = b , b = a + b后,效果如下:
部分切换后的源代码:
结果如下:
1 | "D:\Program Files\Python37\python.exe" E:/python/LearnProject/FileOpration.py |
分析
a = 0
b = 1
count = 0
初始赋值如上所示,count记录循环次数。
进入循环:
对于a , b = b ,a + b :
- 计算过程:首先计算b = b ,a + b,即 b = b = 1, a +b = 0 + 1 = 1 ;
- 接下来赋值: a = b = 1;
- 继续循环重复以上步骤,请拿出笔自行演算或参见以上输出结果。
对于a = b , b = a + b :
- 这是最为常见的赋值计算式,计算过程:首先赋值 a = b = 1;
- 接下来计算: b = a + b = 1 + 1 = 2;
- 注意到这里两个式子结果已经不同,导致了以上第二次输出情况。
- 继续循环重复以上步骤,请拿出笔自行演算或参见以上输出结果。