В чем проблема с моим кодом Python Фибоначчи? - PullRequest
0 голосов
/ 19 октября 2019

Если бы вы могли посмотреть на мой код.

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)

1 Ответ

1 голос
/ 19 октября 2019

Если вы запустите свой код таким образом, вы получите

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
...