Позвольте мне сначала указать, что сумма первых 7 членов последовательности Фибоначчи не равна 32 .Эта сумма составляет 33 .Теперь к проблеме.Вот как бы я решил проблему.Сначала я определил бы функцию, которая вычисляет n -й член последовательности Фибоначчи, следующим образом:
def fibo(n):
if n in [1,2]:
return 1
else:
res = fibo(n-1) + fibo(n-2)
return res
Затем я бы определил функцию для вычисления суммы первого n члены последовательности Фибоначчи следующие:
def sum_fibo(n):
res = [fibo(i) for i in range(1, n+1)]
print(res)
return sum(res)
Так что если я сделаю
[In] sum_fibo(7)
, я получу
[1, 1, 2, 3, 5, 8, 13]
out >>> 33
NOTE : Определяя функции выше, я предположил, что ввод функции всегда будет положительным целым числом, хотя Фибоначчи можно расширить, чтобы охватить все действительные и комплексные числа, как показано на этой вики-странице .