最近在学python,看到教程里有一节是让python实现斐波那契数列:f(x)= f(x-1)+f(x-2)。用python实现起来十分简单,甚至简单到不易理解。代码如下:
# 写一个斐波那契数列
if __name__ == '__main__':
a,b = 0,1
while b < 10:
print(b)
a,b = b,a+b
#结果: 1 1 2 3 5 8
-
如上,python仅用一行代码在循环里对两个参数赋值就完成了递归计算。作为初学菜鸟实在无法理解,后来想用Java做斐波那契数列对比学习下。代码如下:
//实现斐波那契数列
public class test {
public static void main(String[] args) {
int a = 0;
int b = 1;
while (b < 10){
System.out.println(b);
int c = a+b;
a = b;
b = c;
}
}
}
//结果:1 1 2 3 5 8
-
如上,循环中Java需要对两个参数进行三行运算才完成:
- 将两个参数加和;
- 将原来第二个数赋值给接下来要做加和运算的第一个数;
- 将第一次加和值赋值给接下来要做加和运算的第二个数;
-
python:右边的表达式会在赋值变动之前执行。右边表达式的执行顺序是从左往右的
-
结论:python比Java简单,但需要对数学和基本逻辑及运算比较了解才容易学习、掌握;Java对计算的流程没有过分省略,虽然相对繁琐但易于理解。