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语句、函数与方法的使用技巧总结
Dec 08 Python
Python简单实现子网掩码转换的方法
Apr 13 Python
利用Python破解验证码实例详解
Dec 08 Python
视觉直观感受若干常用排序算法
Apr 13 Python
一份python入门应该看的学习资料
Apr 11 Python
Python列表推导式与生成器用法分析
Aug 02 Python
Python 输入一个数字判断成绩分数等级的方法
Nov 15 Python
PyCharm设置每行最大长度限制的方法
Jan 16 Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 Python
python模拟哔哩哔哩滑块登入验证的实现
Apr 24 Python
Python xlrd/xlwt 创建excel文件及常用操作
Sep 24 Python
python tkinter实现定时关机
Apr 21 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网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
2007/08/31 Javascript
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
2012/12/15 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
React Native之TextInput组件解析示例
2017/08/22 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
Python的lambda匿名函数的简单介绍
2013/04/25 Python
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
详解Python中find()方法的使用
2015/05/18 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
Flask实现图片的上传、下载及展示示例代码
2018/08/03 Python
Python3 翻转二叉树的实现
2019/09/30 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
大学生实习思想汇报
2014/01/12 职场文书
大学英语演讲稿范文
2014/04/24 职场文书
小学音乐课教学反思
2016/02/18 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android