Python 实现斐波拉契数列的几种方式
什么是——斐波拉契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda
Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……
代码本体
本人Python小菜鸡,新手一枚,分享自己平时学习的笔记内容
写的不好还请见谅,欢迎大佬指点不足
{:10_307:}
def Meth_one(n):
"""
第一种方法,也是最标准的方法
:param n: n为指定的循环次数,可随意修改,建议 10 以上
:return: 返回为 列表c的值
"""
a,b=0,1
c=[]
for i in range(n):
c.append(a)
a,b=b,a+b
return c
def Meth_two(n):
"""
第二种方法,比较另类,不是以 a 为准,而是以 b 为准的写法,
需要一个临时变量 tmp
:param n: n为指定的循环次数,可随意修改,建议 10 以上
:return: 返回为 列表c的值
"""
a,b=0,1
c=[]
for i in range(n):
c.append(b)
tmp = a
a,b=b,tmp+b
return c
def Meth_three(n):
"""
第三种方法,比较高级的写法,使用 yield语法,每获取一个元素就将这个元素送出去
好处是并不需要代码运行完成后再来全部一起输出,而是可以先看到前面运行完的内容
适用于非常耗时的操作
:param n: n为指定的循环次数,可随意修改,建议 10 以上
:return: 这里返回为默认的 None
"""
a, b = 0, 1
for i in range(n):
yield a
a, b = b, a + b
print(Meth_one(20))
print(Meth_two(20))
#第三种方法需要使用循环将其取出,直接print的话返回的结果是内存地址
for i in Meth_three(20):print(i) 第二种方法,比较另类,不是以 a 为准,而是以 b 为准的写法,
需要一个临时变量 tmp
:param n: n为指定的循环次数,可随意修改,建议 10 以上
:return: 返回为 列表c的值temp 可以去掉。
而且第一种和第二种不能算是两种方法,只是第一种以0开始,第二种以1开始而已。 永恒的蓝色梦想 发表于 2020-8-4 22:28
temp 可以去掉。
而且第一种和第二种不能算是两种方法,只是第一种以0开始,第二种以1开始而已。
谢谢指导 {:10_275:} {:5_109:}。。。。。。。。。。。。。111111111111111 {:5_109:} 其实斐波那契数列又叫黄金分割数列,是可以算出来通式的哦,大佬可以在网上搜一下{:10_256:}
页:
[1]