我的斐波那契python代码有什么问题?
如果你能看看我的代码我的斐波那契python代码有什么问题?,python,fibonacci,Python,Fibonacci,如果你能看看我的代码 number=[1,2] times=int(输入(“多少个数字m(最小为2)”) def斐波那契(数字、次数): 对于范围内的i(0,次): 对于j,数字为: 数字。追加(数字[j]+数字[j+1]) 打印(数字[i]) 斐波那契(数字、次数) 如果您这样运行代码,您将获得 IndexError: list index out of range 因为对于数字中的j:是数字中值的循环,其中包含值1,当您尝试访问数字[j+1]时,该索引超出范围,因为此时没有数字[2]。你为
number=[1,2]
times=int(输入(“多少个数字m(最小为2)”)
def斐波那契(数字、次数):
对于范围内的i(0,次):
对于j,数字为:
数字。追加(数字[j]+数字[j+1])
打印(数字[i])
斐波那契(数字、次数)
如果您这样运行代码,您将获得
IndexError: list index out of range
因为对于数字中的j:
是数字中值的循环,其中包含值1
,当您尝试访问数字[j+1]
时,该索引超出范围,因为此时没有数字[2]
。你为什么需要第二个循环呢?您将使用numbers[i]
和numbers[i+1]
访问最后和倒数第二个值。无需循环列表中的其他值
我已经删除了该循环,如果您像这样运行代码:
number=[1,2]
times=int(输入(“多少个数字m(最小为2)”)
def斐波那契(数字、次数):
对于范围内的i(0,次):
数字。追加(数字[i]+数字[i+1])
打印(数字[i])
斐波那契(数字、次数)
您将得到类似的结果,例如:
How many numbersM (minimum is 2)5
1
2
3
5
8
您告诉我们,您得到了什么错误或输出,您期望得到什么?只需将数字j的更改为范围j的(len(numbers))
,就可以了。@finefoot,哦,您是对的。我刚刚看到他/她把for I in L
作为索引的错误,所以刚才评论指出,对于索引,您应该为for I in range(len(L))
。