我的斐波那契python代码有什么问题?

问题描述 投票:-1回答:1

如果您可以看一下我的代码。

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)
python fibonacci
1个回答
0
投票

如果您这样运行代码,您将得到

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
© www.soinside.com 2019 - 2024. All rights reserved.