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


Posted in Python onJuly 15, 2019

基础版(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入门教程
Feb 08 Python
Python中for循环控制语句用法实例
Jun 02 Python
Python 中 Meta Classes详解
Feb 13 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
Nov 21 Python
Python网络爬虫中的同步与异步示例详解
Feb 03 Python
解决Matplotlib图表不能在Pycharm中显示的问题
May 24 Python
Python中文编码知识点
Feb 18 Python
python mac下安装虚拟环境的图文教程
Apr 12 Python
python获取微信企业号打卡数据并生成windows计划任务
Apr 30 Python
Python之——生成动态路由轨迹图的实例
Nov 22 Python
浅谈pytorch、cuda、python的版本对齐问题
Jan 15 Python
opencv-python图像配准(匹配和叠加)的实现
Jun 23 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 #Python
django settings.py 配置文件及介绍
Jul 15 #Python
python项目对接钉钉SDK的实现
Jul 15 #Python
用Python识别人脸,人种等各种信息
Jul 15 #Python
django中账号密码验证登陆功能的实现方法
Jul 15 #Python
python tkinter窗口最大化的实现
Jul 15 #Python
在pycharm下设置自己的个性模版方法
Jul 15 #Python
You might like
windows7配置Nginx+php+mysql的详细教程
2016/09/04 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
Three.js利用dat.GUI如何简化试验流程详解
2017/09/26 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
python中的print()输出
2019/04/12 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
python中setuptools的作用是什么
2020/06/19 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
2020/08/07 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
Python eval函数原理及用法解析
2020/11/14 Python
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
机械电子工程专业求职信
2014/06/22 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
2016年小学中秋节活动总结
2016/04/05 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
python基础学习之生成器与文件系统知识总结
2021/05/25 Python
win10系统计算机图标怎么调出来?win10调出计算机图标的方法
2022/08/14 数码科技