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里将list中元素依次向前移动一位
Sep 12 Python
在Python中使用Neo4j数据库的教程
Apr 16 Python
python回调函数用法实例分析
May 09 Python
python中子类继承父类的__init__方法实例
Dec 15 Python
python中多个装饰器的执行顺序详解
Oct 08 Python
python爬虫实现中英翻译词典
Jun 25 Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 Python
python读取csv文件指定行的2种方法详解
Feb 13 Python
django API 中接口的互相调用实例
Apr 01 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
May 29 Python
使用Keras建立模型并训练等一系列操作方式
Jul 02 Python
详解Python函数print用法
Jun 18 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 新手入门教程
2009/08/03 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
编写PHP脚本过滤用户上传的图片
2015/07/03 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
js命名空间写法示例
2015/12/18 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
详解Angular的双向数据绑定(MV-VM)
2016/12/26 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
实例讲解Python爬取网页数据
2018/07/08 Python
Python pymongo模块常用操作分析
2018/09/01 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
简单了解python中的与或非运算
2019/09/18 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
python基于opencv实现人脸识别
2021/01/04 Python
HTML5通用接口详解
2016/06/12 HTML / CSS
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
医学毕业生自荐信
2013/10/11 职场文书
秦兵马俑教学反思
2014/02/07 职场文书
个人校本研修方案
2014/05/26 职场文书
舞蹈教育学专业求职信
2014/06/29 职场文书
影视后期实训报告
2014/11/05 职场文书
工艺技术员岗位职责
2015/02/04 职场文书
个人学习总结范文
2015/02/15 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android