码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-07-18 19:39:22      阅读:430      评论:0      收藏:0      [点我收藏+]

标签:用法   dde   表达   hold   数列   nbsp   span   code   style   

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——从连续赋值到斐波拉切数列

标签:用法   dde   表达   hold   数列   nbsp   span   code   style   

原文地址:https://www.cnblogs.com/HuangYuanAvril/p/11209334.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!