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 base64 decode incorrect padding错误解决方法
Jan 08 Python
部署Python的框架下的web app的详细教程
Apr 30 Python
python使用paramiko实现远程拷贝文件的方法
Apr 18 Python
Python实现简单的四则运算计算器
Nov 02 Python
使用Python3 编写简单信用卡管理程序
Dec 21 Python
关于Python中Inf与Nan的判断问题详解
Feb 08 Python
对numpy中布尔型数组的处理方法详解
Apr 17 Python
python实现简单flappy bird
Dec 24 Python
python时间序列按频率生成日期的方法
May 14 Python
python将字符串list写入excel和txt的实例
Jul 20 Python
Python单元测试工具doctest和unittest使用解析
Sep 02 Python
python中自带的三个装饰器的实现
Nov 08 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的中问验证码
2006/11/25 PHP
PHP 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
浅析关于PHP位运算的简单权限设计
2013/06/30 PHP
php使用codebase生成随机数
2014/03/25 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
2017/10/26 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
2010/09/15 Javascript
将字符串转换成gb2312或者utf-8编码的参数(js版)
2013/04/10 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
js和C# 时间日期格式转换的简单实例
2016/05/28 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
Input文本框随着输入内容多少自动延伸的实现
2017/02/15 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
如何用itertools解决无序排列组合的问题
2017/05/18 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
PyCharm代码提示忽略大小写设置方法
2018/10/28 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
python实现FTP循环上传文件
2020/03/20 Python
如何在Python对Excel进行读取
2020/06/04 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
武汉东之林科技有限公司机试
2013/09/17 面试题
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
2014/05/20 面试题
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
小学门卫岗位职责
2013/12/17 职场文书
公司运动会策划方案
2014/05/25 职场文书
机械专业求职信范文
2014/07/15 职场文书
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers