python实现斐波那契数列的实例

  • 更新时间:2020-07-16 08:21:36
  • 编辑:郝君昊
给寻找编程代码教程的朋友们精选了相关的编程文章,网友盖谷南根据主题投稿了本篇教程内容,涉及到python斐波那契数列、python写斐波那契数列、python求斐波那契数列、python实现斐波那契数列的方法示例相关内容,已被507网友关注,相关难点技巧可以阅读下方的电子资料。

python实现斐波那契数列的方法示例

介绍

斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下递归的方法定义:

F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)

python实现斐波那契数列的方法示例

1. 元组实现

fibs = [0, 1]
for i in range(8):
 fibs.append(fibs[-2] + fibs[-1])

这能得到一个在指定范围内的斐波那契数列的列表。

2. 迭代器实现

class Fibs:
 def __init__(self):
  self.a = 0
  self.b = 1

 def next(self):
  self.a, self.b = self.b, self.a + self.b
  return self.a

 def __iter__(self):
  return self

这将得到一个无穷的数列,可以采用如下方式访问:

fibs = Fibs()
for f in fibs:
 if f > 1000:
  print f
  break
 else:
  print f

3. 通过定制类实现

class Fib(object):
 def __getitem__(self, n):
  if isinstance(n, int):
   a, b = 1, 1
   for x in range(n):
    a, b = b, a + b
   return a
  elif isinstance(n, slice):
   start = n.start
   stop = n.stop
   a, b = 1, 1
   L = []
   for x in range(stop):
    if x >= start:
     L.append(a)
    a, b = b, a + b
   return L
  else:
   raise TypeError("Fib indices must be integers")

这样可以得到一个类似于序列的数据结构,可以通过下标来访问数据:

f = Fib()
print f[0:5]
print f[:10]

4.Python实现比较简易的斐波那契数列示例

先放一个斐波那契数列出来瞧瞧…

0 1 1 2 3 5 8 13 21 34 55 89 144 233...

首先给头两个变量赋值:

i, j = 0, 1

当然也可以这样写:

i = 0
j = 1

接着定个范围,就10000之内好了:

while i < 10000:

然后在while语句中输出i并设计逻辑:

 print i,
 i, j = j, i+j

在这里需要注意:“i, j = i, i+j”这条代码不能写成如下所示:

i = j
j = i+j

如果写成这样,j就不是前两位相加的值,而是已经被j赋过值的i和j相加的值,这样的话输出的数列会如下所示:

0 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192

正确的整片代码如下所示:

i, j = 0, 1
while i < 10000:
 print i,
 i, j = j, i+j

最后展示运行结果:

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765

总结

以上就是关于利用Python实现斐波那契数列的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关教程

  • 实例讲解Python线程下queue(队列)模块的用法

    ​本篇文章给大家带来的内容是关于Python线程下queue(队列)模块的用法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    发布时间:2020-02-16

  • Python读取excel指定列生成指定sql脚本的思路和方法

    今天小编就为大家分享一篇Python读取excel指定列生成指定sql脚本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    发布时间:2019-06-06

  • 详解Python 实现数据结构-堆栈和队列的方法步骤

    队、栈和链表一样,在数据结构中非常基础一种数据结构,同样他们也有各种各样、五花八门的变形和实现方式。这篇文章主要介绍了Python 实现数据结构-堆栈和队列的操作方法,需要的朋友可以

    发布时间:2020-01-26

  • Python初始化列表的方法 如何初始化列表

    Python是一种非常灵活的语言,可以通过多种方式执行单个任务,例如,可以通过多种方式执行初始化列表。下面本篇文章就来带大家了解几种Python初始化的方法,并比较一下这几种方法的效率,

    发布时间:2019-06-28

  • python列表和字典区别有哪些

    列表是一组任意类型的值,按照一定顺序组合而成的;字典是通过键值对存储数据,列表和字典相比较,字典的查找和插入速度更快,字典占用空间大,列表占用空间小。

    发布时间:2020-02-28

  • 《Python编程:从入门到实践》第四章:操作列表

    4-1 比萨 : 想出至少是三种你喜欢的比萨,将其名称存储在一个列表中,再使用for循环将每种比萨的名称都打印出来。 修改这个for循环,使其打印包含比萨名称的矩阵,而不仅仅是比萨的名称。对于每种比萨,都显示一行输出,如I like pepperoni pizza。 在程序末尾添加一行代码,它不在for循环中,指出你有多喜欢比萨。输出应包含针对每种比萨的消息,还有一个总结性矩阵,如I

    发布时间:2018-12-01

  • 浅析python消息队列框架

    消息队列是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入。消息队列框架的介绍:RabbitMQ 、Redis 、ZeroMQ 、ActiveMQ 、Jafka/Kafka、Rocketmq等等。

    发布时间:2020-02-20

  • python获取列表最后一个元素的方法总结

    list是Python内置的一种数据类型。list是一种有序的集合,可以随时添加和删除其中的元素。可通过列表最后一个元素的索引来获取它,语句为list[-1]。

    发布时间:2019-07-09

  • Python3列表、数组、矩阵的相互转换方法

    这篇文章主要介绍了Python3 列表,数组,矩阵的相互转换的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学

    发布时间:2019-11-26

  • 实例详解Python实现排列组合、破解密码算法

    这篇文章主要介绍了Python实现的排列组合、破解密码算法,结合实例形式分析了Python排列组合、密码破解相关数学运算操作技巧,需要的朋友可以参考下

    发布时间:2020-01-09

用户留言