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使用htpasswd实现基本认证授权的例子
Jun 10 Python
Python抓取手机号归属地信息示例代码
Nov 28 Python
Python中datetime模块参考手册
Jan 13 Python
python 全文检索引擎详解
Apr 25 Python
Python语言描述机器学习之Logistic回归算法
Dec 21 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
python实现根据文件关键字进行切分为多个文件的示例
Dec 10 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
python实现俄罗斯方块小游戏
Apr 24 Python
Python如何实现FTP功能
May 28 Python
浅析Python 抽象工厂模式的优缺点
Jul 13 Python
python opencv通过4坐标剪裁图片
Jun 05 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将数据导入到Foxmail的实现代码
2010/09/05 PHP
php header Content-Type类型小结
2011/07/03 PHP
php 字符串替换的方法
2012/01/10 PHP
php中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
php函数式编程简单示例
2019/08/08 PHP
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
深入理解setTimeout函数和setInterval函数
2016/05/20 Javascript
总结Javascript中数组各种去重的方法
2016/10/04 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
vue中使用codemirror的实例详解
2018/11/01 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
Node.JS如何实现JWT原理
2020/09/18 Javascript
利用Python绘制MySQL数据图实现数据可视化
2015/03/30 Python
python将unicode转为str的方法
2017/06/21 Python
Python中常用信号signal类型实例
2018/01/25 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
char型变量中能不能存贮一个中文汉字
2015/07/08 面试题
什么是三层交换,说说和路由的区别在那里
2014/09/01 面试题
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
骨干教师培训制度
2014/01/13 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
2014年应急工作总结
2014/12/11 职场文书
教师节寄语2015
2015/03/23 职场文书
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript