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:列表索引超出范围 帮我解决错误。
答案 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]
>>>