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之重回函数
Oct 10 Python
简单学习Python多进程Multiprocessing
Aug 29 Python
Python列表删除的三种方法代码分享
Oct 31 Python
python机器学习之神经网络(一)
Dec 20 Python
Python 变量类型详解
Oct 10 Python
jupyter notebook 实现matplotlib图动态刷新
Apr 22 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
Nov 18 Python
java关于string最常出现的面试题整理
Jan 18 Python
pandas提升计算效率的一些方法汇总
May 30 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 Python
Python实现科学占卜 让视频自动打码
Apr 09 Python
Python开发简易五子棋小游戏
May 02 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编写的简单页面跳转功能实现代码
2013/11/27 PHP
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
2013/11/19 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
2014/10/17 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
vue项目中使用scss的方法步骤
2019/05/16 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
解决iview table组件里的 固定列 表格不自适应的问题
2020/11/13 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
python文件与目录操作实例详解
2016/02/22 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
Python定时从Mysql提取数据存入Redis的实现
2020/05/03 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
Pandas的数据过滤实现
2021/01/15 Python
描述内存分配方式以及它们的区别
2016/10/15 面试题
解释DataSet(ds) 和 ds as DataSet 的含义
2014/07/27 面试题
init进程的作用
2015/08/20 面试题
运动会广播稿300字
2014/01/10 职场文书
军训自我鉴定
2014/01/22 职场文书
初三政治教学反思
2014/01/30 职场文书
高中军训第一天感言
2014/03/06 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
公司晚会策划方案
2014/05/17 职场文书
大学生就业求职信
2014/06/12 职场文书
维稳工作情况汇报
2014/10/27 职场文书
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers
GoFrame基于性能测试得知grpool使用场景
2022/06/21 Golang