2017-02-18 13 views
0

Я сейчас делаю часть моего назначения я должен сделать это так, если пользователь вводит в функции 10 ответ должен бытьФибоначчи список функций

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34] 

но моя программа приводит к

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55] 

Это моя программа

def fib(n): 
    fibonacci = [] 
    a = 0 
    b = 1 
    for i in range(n): 
     fibonacci.append(b) 
     a, b = b, a+b 
    return fibonacci 
+0

Просто добавьте 0 в список или инициализировать его как Фибоначчи = [0], чем запустить цикл до диапазона (N-1). Верните пустой список, если n == 0. – user3894045

ответ

4

Вам просто нужно добавить а вместо Ь.

def fib(n): 
    fibonacci = [] 
    a = 0 
    b = 1 
    for i in range(n): 
     fibonacci.append(a) 
     a, b = b, a+b 
    return fibonacci 

Результаты для print(fib(10))

> python fib.py 
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34] 
+0

wow lol я чувствую себя глупым спасибо за помощь, я выберу его как ответ за 11 минут, когда он позволит мне. Большое спасибо. –

+0

Нет проблем. Также обратите внимание на изменение, внесенное мной в исходный код в вопросе. Проверка на n в конце функции никогда не будет работать, потому что она уже вернулась. Если вы хотите вернуться раньше, вам нужно будет выполнить проверку длины раньше. Однако в этом случае 0 не будет запускать цикл диапазона, и в итоге вы получите пустой список. – sberry

 Смежные вопросы

  • Нет связанных вопросов^_^