2014-08-28 125 views
-3
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︰列表索引超出范围 帮助我的错误。Python中的斐波那契数列

回答

0

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

使用fib.append()将数字添加到列表中。

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 
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] 
>>>