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实现根据窗口标题调用窗口的方法
Mar 13 Python
用Python编写生成树状结构的文件目录的脚本的教程
May 04 Python
Python中有趣在__call__函数
Jun 21 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
May 05 Python
python中使用iterrows()对dataframe进行遍历的实例
Jun 09 Python
Python实现账号密码输错三次即锁定功能简单示例
Mar 29 Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
对python中UDP,socket的使用详解
Aug 22 Python
Python 转换RGB颜色值的示例代码
Oct 13 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
Apr 29 Python
python中requests库+xpath+lxml简单使用
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数据类型判断函数有哪些
2013/09/23 PHP
php不写闭合标签的好处
2014/03/04 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
通过jquery 获取URL参数并进行转码
2014/08/18 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
Vue项目自动转换 px 为 rem的实现方法
2018/10/29 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
布同自制Python函数帮助查询小工具
2011/03/13 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
2018/05/30 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
python如何操作mysql
2020/08/17 Python
Python与C/C++的相互调用案例
2021/03/04 Python
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
不用游标的SQL语句有哪些
2012/09/07 面试题
工厂门卫岗位职责
2013/11/25 职场文书
小学优秀班主任材料
2014/12/17 职场文书
中学生思想品德评语
2014/12/31 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
Pytorch 使用tensor特定条件判断索引
2021/04/08 Python
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python