斐波那契数列,又称黄金分割数列、因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以递归的方法定义。

对于学习编程语言的小伙伴们来说,斐波那契数列将是一个最经典的函数之一,今天用Python来给大家讲讲这个经典的函数怎么简单粗暴的实现。

实现之前呢,先给大家介绍一下斐波那契数列的原理,原题是一个兔子繁殖问题,简单的讲就是后一项等于前两项之和,即f(x)=f(x-1)+f(x-2),第一项可为0,亦可为1。

下面介绍两种常用的方式,或许没别人写的那么简洁,请见谅哈!

第一种:非递归方式,用的是索引和while循环相结合

# 从零开始,输出前n项斐波那契数列

# 定义斐波那契函数

def fibo(x):

#初始化前两项

m=0

n=1

# 用list存储

l=[0,1]

# 设定初始项

i=2

# 用while循环进行运算,原理:后一项等于前两项之和

while i

# m+n赋值给n

n=m+n

# 将n添加至list

l.append(n)

# 通过索引将list的前一项赋值给m

m =l[i-1]

#通过自加来达到退出循环的条件

i=i+1

#打印出list

print(l)

# 调用函数

fibo(10)

第二种:递归方式实现,这种就是经典模型了

# 从零开始,输出第n项斐波那契数列def fibo(x):

if x==1:

return 0

elif x==2:

return 1

elif x>2:

return fibo(x-1)+fibo(x-2)

else:

print("输入错误,请重新输入!")

用python语言编斐波那契数列_用python函数写斐波那契数列相关推荐

  1. python语言程序设计基础答案第四章_《Python语言程序设计基础》第四章笔记

    4.1 程序的分支结构 4.1.1 单分支结构 if : if True: print("条件正确") 4.1.2 二分支结构 if : else : if True: print ...

  2. python语言的单行注释以井号开头_初识Python

    Python Python开发 Python语言 初识Python 初识Python 计算机基础 计算机的组成: 输入输出设备.存储器.主板.CPU.硬盘.内存.显示器.电源.显卡. CPU:中央处理 ...

  3. python语言的编程模式是什么意思_关于 Python 语言的编程模式,哪个说法正确?_学小易找答案...

    [简答题]给出异常处理的流程.要求包括else和finally,并说明else和finally的区别. (10.0分) [单选题]关于函数,以下选项中描述错误的是() (7.0分) [多选题]Pyth ...

  4. python语言的单行注释以井号开头_《Python编程基础》

    任务2.1 掌握Python的固定语法 任务描述 Python是一门简单又优雅的语言,在使用之前,读者需要了解并掌握它的基础语法,这样有助于代码的学习和运用,并有利于保持一个良好的编程风格.读者需要认 ...

  5. python语言的编程模式是什么意思_编程语言Python,可以用来干什么

    原标题:编程语言Python,可以用来干什么 Python因为简单全面易用而成为近年来大热的编程语言.但是很多人学习了这门余元的语法和基本功能之后却不知道Python能干什么以及怎么做.在此,把Pyt ...

  6. 用python语言实现游戏关卡之间的转化_用python tkinter 129条语句实现2048游戏

    2048游戏规则如下,游戏由16个正方体组成4行4列矩阵,每个正方体显示可以为空,也可以显示2.4.8.16.32-2048.4096任一数字.初始矩阵只有2个正方体有数字,其余全为空,这两个数字可为 ...

  7. python语言浮点数可以不带小数部分吗_关于Python语言的浮点数类型,以下选项中描述错误的是 ( )_学小易找答案...

    [单选题]关于Python赋值语句,以下选项中不合法的是 ( ) [简答题]2014年22JAVA_B场参考答案.doc [单选题]下面代码的输出结果是 ( ) d ={" 大海 " ...

  8. 以下可以采用python语言保留字的是-以下选项中,不是Python语言保留字的是_学小易找答案...

    [单选题]以下选项中,不是 Python 语言保留字的是 [连线题]将动机理论及其解释说明连线: [单选题]以下选项中,不是Python语言合法命名的是 [单选题]在Python函数中,用于获取用户输 ...

  9. Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略

    Python语言学习之双下划线那些事:python和双下划线使用方法之详细攻略 目录 双下划线介绍 1.关于双下划线的函数或方法或属性 双下划线介绍 1.关于双下划线的函数或方法或属性 __name_ ...

  10. Python语言学习之常见语句命令那些事:python和常见语句命令(条件语句、pass语句)使用方法之详细攻略

    Python语言学习之常见语句命令那些事:python和常见语句命令(条件语句.pass语句)使用方法之详细攻略 目录 Python常见语句命令 1.python的条件语句 2.Python之pass ...

最新文章

  1. centos删除系统自带的httpd
  2. MFC中UPD通信详细解说
  3. Kafka概念入门(一)
  4. 三数之和为0(c语言实现)(改进)
  5. 计算机常用英语(2)
  6. 跟我学交换机配置(一)
  7. Linux命令之find的用法
  8. 使用jMeter的regular expression extract提取SSO form的XSRF protection token
  9. currentTarget与target的区别
  10. 测验8: 程序设计方法学 (第8周)(编程题)
  11. 笔记本电脑插耳机后耳机无声音有外放情况,咋办??
  12. php收藏影视,十个值得收藏的影视资源网站
  13. QQ聊天记录多角度分析Python实现
  14. Unity优化——模型合并
  15. 领扣LintCode问题答案-5. 第k大元素
  16. 浅谈一类积性函数的前缀和
  17. 战网服务器组件,架设自己的战网服务器
  18. Mezzanine 修改默认主页
  19. 单片机(MCU)复位电路
  20. PhantomJS将网页保存为图片

热门文章

  1. 读书笔记_java设计模式深入研究 第八章 状态模式 State
  2. Xml Document与 xml反序列化
  3. PMcaff课堂:10年经验的产品大咖眼中的社交产品是这样的
  4. 【产品】密码明文显示的必要性和解决方案
  5. linux下文件无法删除不能编辑
  6. WPF中桌面屏保的制作(主要代码)
  7. MaskedTextBox
  8. 突然感到很无聊当没有看书时
  9. CMS - tabBar
  10. Redis Cluster深入与实践(续)