Python中的Fibonacci序列

时间:2014-08-28 06:24:09

标签: python fibonacci

n=raw_input("Enter no. of numbers in Fibonacci series: ")
n=int(n)
fib=[]   
fib[0]=0  
fib[1]=1  
for i in range(2,n):
    fib[i]=(fib[i-1])+(fib[i-2])   
print fib   

我得到的错误:IndexError:列表索引超出范围 帮我解决错误。

3 个答案:

答案 0 :(得分:1)

您正在索引一个空列表!你应该首先创建你的列表:

  

fib=[]

然后使用append运算符向其添加每个元素。

  

fib.append(0)

所以这是您的代码的正确版本:

n=raw_input("Enter no. of numbers in Fibonacci series: ")
n=int(n)
fib=[]   
fib.append(0)  
fib.append(1)
for i in range(2,n):
    fib.append(fib[-1]+(fib[-2]))  
print fib

答案 1 :(得分:0)

您从一个空列表开始,但没有扩展它。因此,您试图索引不存在的元素。

使用fib.append()为您的列表添加数字。

答案 2 :(得分:0)

>>> n==raw_input("Enter no. of numbers in Fibonacci series: ")
>>> n = int(n)
>>> fib=[0,1]
>>> for ix in range(2,n):
...     fib.append( fib[-1] + fib[-2] )
... 
>>> fib # result for n is 20
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181]
>>>