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 测试实现方法
Dec 24 Python
python+pyqt实现12306图片验证效果
Oct 25 Python
python探索之BaseHTTPServer-实现Web服务器介绍
Oct 28 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
python笔记之mean()函数实现求取均值的功能代码
Jul 05 Python
Python适配器模式代码实现解析
Aug 02 Python
Python 实现的 Google 批量翻译功能
Aug 26 Python
利用Python复制文件的9种方法总结
Sep 02 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
Mar 08 Python
Django migrate报错的解决方案
May 20 Python
用python批量解压带密码的压缩包
May 31 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
php 将excel导入mysql
2009/11/09 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
Jquery 常用方法经典总结
2010/01/28 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
2020/08/13 Javascript
跟老齐学Python之数据类型总结
2014/09/24 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
python增加图像对比度的方法
2019/07/12 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
学生自我鉴定范文
2013/10/04 职场文书
汽车检测与维修专业求职信
2013/10/30 职场文书
实习生自荐信范文分享
2013/11/27 职场文书
应届生的求职推荐信范文
2013/11/30 职场文书
大一新生军训时的自我评价分享
2013/12/05 职场文书
优秀演讲稿范文
2013/12/29 职场文书
cf收人广告词大全
2014/03/14 职场文书
市场开发与营销专业求职信范文
2014/05/01 职场文书
无犯罪记录证明
2014/09/19 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书