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来理一理红楼梦里的那些关系代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python+uiautomator2实现手机锁屏解锁功能

    Python+uiautomator2实现手机锁屏解锁功能

    python-uiautomator2封装了谷歌自带的uiautomator2测试框架,提供便利的python接口,这篇文章给大家介绍使用Python+uiautomator2实现手机锁屏解锁(期望输入的锁屏密码,基于滑动解锁),感兴趣的朋友一起看看吧
    2021-04-04
  • 关于pytorch中全连接神经网络搭建两种模式详解

    关于pytorch中全连接神经网络搭建两种模式详解

    今天小编就为大家分享一篇关于pytorch中全连接神经网络搭建两种模式详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python操作SQLite数据库过程解析

    Python操作SQLite数据库过程解析

    这篇文章主要介绍了Python操作SQLite数据库过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • python笔记:mysql、redis操作方法

    python笔记:mysql、redis操作方法

    下面小编就为大家带来一篇python笔记:mysql、redis操作方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Python表达式的优先级详解

    Python表达式的优先级详解

    在本篇文章里小编给大家整理了关于Python表达式的优先级的知识点内容,需要的朋友们可以学习下。
    2020-02-02
  • Python中的作用域==和is的区别及说明

    Python中的作用域==和is的区别及说明

    这篇文章主要介绍了Python中的作用域==和is的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Python 使用office365邮箱的示例

    Python 使用office365邮箱的示例

    这篇文章主要介绍了Python 使用office365邮箱的示例,帮助大家利用python进行高效办公,感兴趣的朋友可以了解下
    2020-10-10
  • Python实现KNN(K-近邻)算法的示例代码

    Python实现KNN(K-近邻)算法的示例代码

    这篇文章主要介绍了Python实现KNN(K-近邻)算法的示例代码,它主要用于对事物进行分类。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 运筹学-Python实现图论与最短距离

    运筹学-Python实现图论与最短距离

    需要求解任意两个节点之间的最短距离,使用 Floyd 算法,只要求解单源最短路径问题,有负权边时使用 Bellman-Ford 算法,没有负权边时使用 Dijkstra 算法,本节我们只讨论Dijkstra 算法,需要的朋友可以参考一下
    2022-01-01

最新评论