您的位置:首页 > 编程语言 > Python开发

斐波那契数列的实现(Python)

2017-08-07 19:26 519 查看
【注】:下述操作过程是结合多种网络方法,然后自己实践的结果。写在这里,主要目的是加深记忆,也希望能帮助后来者


斐波那契数列又称“兔子数列”,是这样一列数:1、1、2、3、5、8、13、21、34、……

以递归的方法定义如下:F(0)=0,F(1)=1,
F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)

使用Python语言实现如下:

#生成斐波那契数列
List=[0]
a, b = 0, 1
for i in range(10):
a, b = b, a+b
List.append(a)#往列表末尾添加一个元素
print(List)


利用类和对象的方式实现如下:

class Fib(object):
def __init__(self):#除self以外的参数是传入参数
self.a, self.b = 0, 1
def __iter__(self):
return self
def __next__(self):
self.a, self.b = self.b, self.a + self.b
if self.a > 100000:
raise StopIteration()
return self.a #每次调用__next__()都返回一个值,这个值大于100000时,停止迭代,退出循环
for n in Fib():
print(n)

【注】:__iter__()方法,该方法返回一个迭代对象,然后,Python的for循环就会不断调用该迭代对象的__next__()方法拿到循环的下一个值,直到遇到StopIteration()错误时退出循环

参考链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319098638265527beb24f7840aa97de564ccc7f20f6000#0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息