Python——从连续赋值到斐波拉切数列

Posted huangyuanavril

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python——从连续赋值到斐波拉切数列相关的知识,希望对你有一定的参考价值。

Python中有一个非常简洁的赋值语句用法,就是连续赋值。

  要分别给两个变量赋值,我的第一念头是如下:

1 a = 1
2 b = 2

  但其实python还提供了一种更简洁的写法如下

1 a , b = 1 , 2

  这时我们很自然的就能理解为按顺序赋值,a = 首位数字1,b = 次位数字2。但实际上并不仅仅如此。

  连续赋值语句中等式右边其实都是局部变量,而不是真正的变量值本身。当等号右边是定值时,这样做当然没有问题。但是如果右边是一个含有变量的表达式,那么赋值时会采用截至本句代码前一句为止,各变量所代表的值进行计算。如

1 a = 0
2 b = 1
3 a , b = b , a + b

  上述代码运行的结果,a = b = 1, b = a + b = 0 + 1 = 1,输出结果a = 1,b = 1,并没有把最热乎的a = 1用到b的计算中。这是个大坑!

  最后顺手贴一个用生成斐波拉切数列,贴他是因为用python写出来的居然才5行!这也太简单了!

1 # 生成“斐波拉切数列”。
2 # 斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 
3 # 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........
4 # 这个数列从第3项开始,每一项都等于前两项之和。
5 i = 0
6 j = 1
7 for _ in range(20):   # 输出前20位
8     i , j = j , i + j
9     print(i,end = "  ")

 

以上是关于Python——从连续赋值到斐波拉切数列的主要内容,如果未能解决你的问题,请参考以下文章

python斐波拉契数列

菲波那契数列是啥

Python 探讨斐波拉契数列模素数的周期问题

斐波拉契数列

python迭代器实现斐波拉契求值

斐波拉契数列(用JavaScript和Python实现)