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

741

被折叠的 条评论
为什么被折叠?



