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实现的一个找零钱的小程序代码分享
Aug 25 Python
Python多线程编程(七):使用Condition实现复杂同步
Apr 05 Python
Python正则表达式匹配HTML页面编码
Apr 08 Python
在Python中使用pngquant压缩png图片的教程
Apr 09 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
Jan 28 Python
详解Python实现多进程异步事件驱动引擎
Aug 25 Python
教你用Python写安卓游戏外挂
Jan 11 Python
Python实现扣除个人税后的工资计算器示例
Mar 26 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
django数据模型(Model)的字段类型解析
Dec 25 Python
python with (as)语句实例详解
Feb 04 Python
python 代码运行时间获取方式详解
Sep 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之sprintf函数用法详解
2014/11/12 PHP
PHP反射原理与用法深入分析
2019/09/28 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
微信小程序选择图片和放大预览图片功能
2017/11/02 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
进一步探究Python的装饰器的运用
2015/05/05 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
2020/03/06 Python
Jupyter notebook 启动闪退问题的解决
2020/04/13 Python
Django视图、传参和forms验证操作
2020/07/15 Python
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
工程监理应届生求职信
2013/11/09 职场文书
公司新员工的演讲稿注意事项
2014/01/01 职场文书
中国好声音广告词
2014/03/18 职场文书
公司运动会策划方案
2014/05/25 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
授权委托书格式
2014/07/31 职场文书
写给导师的自荐信
2015/03/06 职场文书
出纳试用期自我评价
2015/03/10 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书