Python-斐波拉契数列
斐波那契数列:1,1,2,3,5,8,13…可以看出,第一第二个数字是1,后面的数字是前面两数之和。那么问题来了:
(a)编写函数输出序列的前n个数;
(b)编写函数输出序列的第n个数。
代码:
(a)
def fib(n):
a = 0
b = 1
i = 1
lis=[]
while i <= n:
lis.append(b) #此处是用圆括号
a,b = b,a+b #此处不能写成a=b,b=a+b
return lis
#fib(10)
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
(b)
def fib(n):
a = 0
b = 1
i = 1
lis=[]
while i <= n:
lis.append(b)
a,b = b,a+b #此处不能写成a=b,b=a+b
return lis[n-1]#列表n-1代表的是第n个数,此处用方括号
#fib(10)
#55
知识点总结:
1,a,b=b,a+b与a=b,b=a+b的区别,赋值运算是先计算等号“=”右边的,b=1,a+b=0+1=1,然后赋值给左边,得到:a=1,b=1.而a=b,b=a+b得到的是a=1,b=1+1=2.
2,list列表的数是从0开始计数。
3,list的圆括号和方括号的使用需注意
更多有关python学习,请关注微信公众号:米斯特lu