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中的斐波那契数列
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中的斐波那契数列
你从一个空的列表开始,但不扩展它。因此,您正在尝试索引不存在的元素。
使用fib.append()
将数字添加到列表中。
您正在为空列表建立索引!你应该先创建列表,如:
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
>>> 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]
>>>