python3实现斐波那契数列(4种方法)

 更新时间:2019年07月15日 15:43:45   作者:宁致乐水  
这篇文章主要介绍了python3实现斐波那契数列(4种方法),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

基础版(list方法)

# 比较占内存
w = int(input("输入一个数字还你一个斐波那契数列:"))
list_res = []
def list_n(n):
  if n>=3:
    res=list_n(n-1)+list_n(n-2)
  else:
    res=1
  return res

print("开始")

for i in range(0,w):
  list_res.append(list_n(i+1))
print(list_res)

升级版

# 比较占内存
num =int(input("输入一个数字还你一个斐波那契数列v2.0:"))
list_nums=[1,1]
def calculate(num,list_nums):
  i = 0
  if num>2:
    while i < num:
      list_nums.insert(i+2,list_nums[i]+list_nums[i+1])
      i+=1
    else:
      print("数列已生成")
      print(list_nums)
    return list_nums[num-1]
  else:
    return list_nums[0]

res = calculate(num,list_nums)
print("="*50)
print("第%s个:%s"%(num,res))

最实用版(解包的方式)

#省内存
def fbnq(n):
  a,b=1,1
  if n==1 or n ==2:
    return 1
  else:
    i=3
    while i<=n:
      a,b=b,a+b
      i+=1
    return b

print(fbnq(int(input("输入一个数:"))))

迭代器版

"""实现斐波那契数列"""


class feibo(object):
  def __init__(self, length):
    self.num1 = 0
    self.num2 = 1
    self.num = self.num1
    self.length = length
    self.index = 0

  def __iter__(self):
    return self

  def __next__(self):
    self.num = self.num1
    while True:
      if self.index == self.length:
        raise StopIteration
      self.num1, self.num2 = self.num2, self.num1+self.num2
      self.index += 1
      return self.num


myfbnq = feibo(10)
# print(list(myfbnq))  # 指针位置已到最后一位
for i in myfbnq:
  print(i)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python的垃圾回收机制详解

    Python的垃圾回收机制详解

    这篇文章主要介绍了Python的垃圾回收机制详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 详细解析Python中的变量的数据类型

    详细解析Python中的变量的数据类型

    这篇文章主要介绍了详细解析Python中的变量的数据类型,是Python学习当中的基础知识,需要的朋友可以参考下
    2015-05-05
  • python中flatten()函数用法详解

    python中flatten()函数用法详解

    本文主要介绍了python中flatten()函数用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 使用Python操作PDF文件

    使用Python操作PDF文件

    这篇文章介绍了Python操作PDF文件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 浅谈Python在pycharm中的调试(debug)

    浅谈Python在pycharm中的调试(debug)

    今天小编就为大家分享一篇浅谈Python在pycharm中的调试(debug),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python中的优先队列(priority queue)和堆(heap)

    Python中的优先队列(priority queue)和堆(heap)

    这篇文章主要介绍了Python中的优先队列(priority queue)和堆(heap),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Python获取当前时间日期的实现示例

    Python获取当前时间日期的实现示例

    本文主要介绍了Python获取当前时间日期,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Python编写打字训练小程序

    Python编写打字训练小程序

    这篇文章主要介绍了Python编写打字训练小程序,需要的朋友可以参考下
    2019-09-09
  • python简易远程控制单线程版

    python简易远程控制单线程版

    这篇文章主要为大家详细介绍了python简易远程控制单线程版,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Keras使用预训练模型迁移学习单通道灰度图像详解

    Keras使用预训练模型迁移学习单通道灰度图像详解

    这篇文章主要介绍了Keras使用预训练模型迁移学习单通道灰度图像详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02

最新评论