我的斐波那契 python 代码有什么问题?
What is the problem about my fibonacci python code?
如果你能看看我的代码。
numbers = [1,2]
times = int(input("How many numbersM (minimum is 2)"))
def fibonacci(numbers, times):
for i in range(0, times):
for j in numbers:
numbers.append( numbers[j] + numbers[j+1])
print(numbers[i])
fibonacci(numbers, times)
如果你运行你的代码是这样的,你会得到
IndexError: list index out of range
因为 for j in numbers:
是对 numbers
中的值的循环,其中包含值 1
,当您尝试访问 numbers[j+1]
时,它是一个超出范围的索引,因为那里此时没有numbers[2]
。为什么你仍然需要第二个 for
循环?您将使用 numbers[i]
和 numbers[i+1]
访问最后一个和倒数第二个值。无需遍历列表的其他值。
我已经删除了那个循环,如果你运行你的代码是这样的:
numbers = [1,2]
times = int(input("How many numbersM (minimum is 2)"))
def fibonacci(numbers, times):
for i in range(0, times):
numbers.append( numbers[i] + numbers[i+1])
print(numbers[i])
fibonacci(numbers, times)
你会得到这样的东西,例如:
How many numbersM (minimum is 2)5
1
2
3
5
8
如果你能看看我的代码。
numbers = [1,2]
times = int(input("How many numbersM (minimum is 2)"))
def fibonacci(numbers, times):
for i in range(0, times):
for j in numbers:
numbers.append( numbers[j] + numbers[j+1])
print(numbers[i])
fibonacci(numbers, times)
如果你运行你的代码是这样的,你会得到
IndexError: list index out of range
因为 for j in numbers:
是对 numbers
中的值的循环,其中包含值 1
,当您尝试访问 numbers[j+1]
时,它是一个超出范围的索引,因为那里此时没有numbers[2]
。为什么你仍然需要第二个 for
循环?您将使用 numbers[i]
和 numbers[i+1]
访问最后一个和倒数第二个值。无需遍历列表的其他值。
我已经删除了那个循环,如果你运行你的代码是这样的:
numbers = [1,2]
times = int(input("How many numbersM (minimum is 2)"))
def fibonacci(numbers, times):
for i in range(0, times):
numbers.append( numbers[i] + numbers[i+1])
print(numbers[i])
fibonacci(numbers, times)
你会得到这样的东西,例如:
How many numbersM (minimum is 2)5
1
2
3
5
8