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 相关文章推荐
详细介绍Ruby中的正则表达式
Apr 10 Python
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 Python
Python字符串拼接六种方法介绍
Dec 18 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
python linecache 处理固定格式文本数据的方法
Jan 08 Python
Django模型修改及数据迁移实现解析
Aug 01 Python
softmax及python实现过程解析
Sep 30 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
Feb 07 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 Python
Python实现动态循环输出文字功能
May 07 Python
解决pycharm修改代码后第一次运行不生效的问题
Feb 06 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(3)
2006/10/09 PHP
php set_time_limit()函数的使用详解
2013/06/05 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
8个必备的PHP功能实例代码
2013/10/27 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
javascript时间函数大全
2014/06/30 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
AngularJS压缩JS技巧分析
2016/11/08 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
JS与jQuery判断文本框还剩多少字符可以输入的方法
2018/09/01 jQuery
vue 中使用 watch 出现了如下的报错的原因分析
2019/05/21 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
python 写的一个爬虫程序源码
2016/02/28 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
python自定义函数def的应用详解
2020/06/03 Python
如何对python的字典进行排序
2020/06/19 Python
白酒市场开发计划书
2014/01/09 职场文书
党校学习自我鉴定
2014/02/24 职场文书
外贸员简历中的自我评价
2014/03/04 职场文书
文明社区申报材料
2014/08/21 职场文书
英文辞职信范文
2015/05/13 职场文书
鉴史问廉观后感
2015/06/10 职场文书
运动会100米广播稿
2015/08/19 职场文书
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis