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中操作字典之clear()方法的使用
May 21 Python
用python找出那些被“标记”的照片
Apr 20 Python
对python捕获ctrl+c手工中断程序的两种方法详解
Dec 26 Python
在Python中字典根据多项规则排序的方法
Jan 21 Python
Python 常用模块 re 使用方法详解
Jun 06 Python
python快速编写单行注释多行注释的方法
Jul 31 Python
Python语言异常处理测试过程解析
Jan 08 Python
python+opencv3生成一个自定义纯色图教程
Feb 19 Python
pandas apply多线程实现代码
Aug 17 Python
用python绘制樱花树
Oct 09 Python
Python爬取网站图片并保存的实现示例
Feb 26 Python
python实现进度条的多种实现
Apr 29 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 PDO函数库详解
2010/04/27 PHP
php格式化时间戳显示友好的时间实现思路及代码
2014/10/23 PHP
php倒计时出现-0情况的解决方法
2016/07/28 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
js树形控件脚本代码
2008/07/24 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
jquery判断类型是不是number类型的实例代码
2016/10/07 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
Vue侦测相关api的实现方法
2019/05/22 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
Python及PyCharm下载与安装教程
2017/11/18 Python
python字典快速保存于读取的方法
2018/03/23 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
python模块如何查看
2020/06/16 Python
Python pysnmp使用方法及代码实例
2020/08/24 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
GUESS盖尔斯法国官网:美国时尚品牌
2016/09/23 全球购物
学院领导推荐信
2013/10/30 职场文书
九年级化学教学反思
2014/01/28 职场文书
网上快餐厅创业计划书
2014/02/01 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
2016年度先进班组事迹材料
2016/03/01 职场文书
教你漂亮打印Pandas DataFrames和Series
2021/05/29 Python
Python OpenCV超详细讲解基本功能
2022/04/02 Python
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js