python实现斐波那契数列

本文介绍了两种用Python实现斐波那契数列的方法:一是使用列表追加list.append(),二是构造递归函数def recur_fibo(n)。文中给出了核心代码并展示了运行效果。


斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。

方法一:使用列表追加list.append()

核心代码:

fibo = [0,1]
for ii in range(2,times):
    fibo.append(fibo[ii-2]+fibo[ii-1])

加入了错误异常处理的代码如下:

fibo = [0,1]

while True:
    try:
        times = int(input("请输入斐波那契数列的长度:"))
        if times == 1:
            print(fibo[0:1])
            break
        elif times >= 2:
            for ii in range(2,times):
                fibo.append(fibo[ii-2]+fibo[ii-1])
            print(fibo)
            break
        else:
            print("输入的数字有错误,请输入大于等于2的数字:")
            continue

    except ValueError:
        print("请输入数字")
        continue

效果如下:

请输入斐波那契数列的长度:abc
请输入数字
请输入斐波那契数列的长度:-8
输入的数字有错误,请输入大于等于2的数字:
请输入斐波那契数列的长度:0
输入的数字有错误,请输入大于等于2的数字:
请输入斐波那契数列的长度:10
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

Process finished with exit code 0

方法二:构造递归函数def recur_fibo(n)

核心代码:

def recur_fibo(n):
	if n<=1:
		return n
	elif n>=2:
		return(recur_fibo(n-2) + recur_fibo(n-1)

完整代码如下:

def recur_fibo(n):
    if n==0:
        return 0
    elif n==1:
        return 1
    else:
        return (recur_fibo(n-1) + recur_fibo(n-2))

n = int(input("请输入斐波那契数列的长度:"))
for ii in range(0,n):
    print(recur_fibo(ii))

运行效果如下:

请输入斐波那契数列的长度:10
0
1
1
2
3
5
8
13
21
34

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值