python如何实现斐波那契数列

 更新时间:2023年08月10日 09:12:42   作者:签到赢福利  
这篇文章主要介绍了python如何实现斐波那契数列问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python实现斐波那契数列

利用for循环来实现

核心:python列表中可以用-1,-2来索引和访问倒数第一个数和倒数第二个数。

fibs = [1,2]
for i in range(8):
    fibs.append(fibs[-2] + fibs[-1])
print(fibs)

运行结果:

运行结果

range中的参数代表此for循环的循环次数

使用while循环来实现

i = 0
j = 1
while i<10000
    print(i,end = ' ')
    i,j = j,i+j

运行结果:

在这里插入图片描述

i,j = j,i+j 是并列赋值,一开始竟然看成由逗号隔开的三个东西,然后想了好久,服了。

递归

def fibs(n):
    if n < 1:
        return -1
    elif n==1 or n==2:
        return 1
    else:
        return fibs(n-1) + fibs(n-2)
num = int(input('input num:'))
for i in range(1,num+1):
    print(fibs(i),end=' ')

递归函数里面的话得到的只是你输入个数的那个最大的斐波那契数,输出的话是需要一个一个输出的,就是用for循环输出。

python编写函数求斐波拉契数列(0、1、1、2、3、5、8、..)并求用户输入的前x项之和

什么是斐波那契数列

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”

指的是这样一个数列:

0、1、1、2、3、5、8、13、21、34、……

在数学上,斐波那契数列以如下被以递推的方法定义:

F(1)=1
F(2)=1
F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)

斐波那契数列规律

除了第一项和第二项外,从第三项开始,每一项都等于前两项之和

斐波那契数列的代码实现

用Python编写函数求斐波拉契数列(0、1、1、2、3、5、8、…)并根据用户输入的前x项进行求和

def fib(n):
    list = [0,1]
    a,b = 0,1
    for i in range(2,n+1):
        a,b=b,a+b 
        list.append(b)
    return list
while True:
    try:
        x = int(input('请输入斐波那契数列的长度:'))
        if x <= 0:
            print('长度输入不合法!')
            continue
        else:
            sum = 0
            list = fib(x) # 调用前面写的fib函数
            print('前{}项的斐波那契数列是:'.format(x))
            for j in range(0,x):
                print(list[j],end=' ')
                sum = sum + list[j] # 求和
            print ('\n')
            print('前{}项的斐波那契数列之和是:\n{}'.format(x,sum))
            break
    except ValueError:
        print ('长度输入不合法!')
        continue

执行结果:

请输入斐波那契数列的长度:20
前20项的斐波那契数列是:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 

前20项的斐波那契数列之和是:
10945

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python实现爬取需要登录的网站完整示例

    Python实现爬取需要登录的网站完整示例

    这篇文章主要介绍了Python实现爬取需要登录的网站,结合完整实例形式分析了Python登陆网站及数据抓取相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • python datetime 和时间戳互相转换问题

    python datetime 和时间戳互相转换问题

    time和datetime都是Python中的内置模块(不需要安装,直接可以使用),都可以对时间进行获取,对时间格式进行转换,如时间戳和时间字符串的相互转换,本文先给大家介绍python datetime 和时间戳互转问题,感兴趣的朋友一起看看吧
    2022-11-11
  • Python实现读取邮箱中的邮件功能示例【含文本及附件】

    Python实现读取邮箱中的邮件功能示例【含文本及附件】

    这篇文章主要介绍了Python实现读取邮箱中的邮件功能,可读取邮件文本及附件的功能,涉及Python针对邮件的获取、分析、保存等相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • 浅谈用Python实现一个大数据搜索引擎

    浅谈用Python实现一个大数据搜索引擎

    这篇文章主要介绍了浅谈用Python实现一个大数据搜索引擎,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • python np.arange 步长0.1的问题需要特别注意

    python np.arange 步长0.1的问题需要特别注意

    这篇文章主要介绍了python np.arange 步长0.1的问题需要特别注意,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python获取协程返回值的四种方式详解

    Python获取协程返回值的四种方式详解

    这篇文章主要为大家介绍了Python中获取协程返回值的四种方法的示例代码,文中的代码详细易懂,对我们学习Python有一定的帮助,需要的朋友可以了解一下
    2021-12-12
  • django免除csrf校验的方法

    django免除csrf校验的方法

    这篇文章主要介绍了django免除csrf校验的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • Python 读取有公式cell的结果内容实例方法

    Python 读取有公式cell的结果内容实例方法

    在本篇文章里小编给大家整理的是关于Python 如何读取有公式cell的结果内容,需要的朋友们可以学习下。
    2020-02-02
  • python中的位置参数和关键字参数详解

    python中的位置参数和关键字参数详解

    位置参数和关键字参数是 Python 中的两种不同类型的函数参数传递方式,位置参数依赖于参数的位置顺序,而关键字参数通过参数名传递,不受位置影响,本文通过代码示例给大家详细介绍了python中的位置参数和关键字参数,需要的朋友可以参考下
    2023-12-12
  • 教你如何用python开发一款数字推盘小游戏

    教你如何用python开发一款数字推盘小游戏

    这篇文章主要介绍了教你如何用python开发一款数字推盘小游戏,文中有非常详细的代码示例,喜对欢玩小游戏的或者正在学习python小游戏开发的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-04-04

最新评论