Напишите рекурсивную функцию, которая осуществляет суммирование чисел в списке. Выводит ошибку!
Напишите рекурсивную функцию, которая осуществляет суммирование чисел в списке. Список должен быть сгенерирован из 10 чисел, каждое в диапазоне от 1 до 100.
import random
def Summa(n, Massiv, sum = 0):
if n == 1: return sum
sum += Massiv[n-1]
return Summa(n-1, Massiv, sum)
def massiv_generator():
m = []
for i in range(10):
m += random.randrange(1, 101)
return m
m = massiv_generator()
n = len(m)
sum = Summa(n, m)
print("Результат",sum)
Ответы (3 шт):
Автор решения: Sergey
→ Ссылка
Тут вы пытаетесь к массиву прибавить число, такая запись само собой не является валидной. Чтобы добавить число в массив, существует метод [].append()
так что просто замените
m += random.randrange(1, 101)
на
m.append(random.randrange(1, 101))
Автор решения: user2240578
→ Ссылка
Задача, конечно, бесcмысленная:
>>> def summ(nums, i=0):
... return nums[i] + summ(nums, i + 1) if i < len(nums) - 1 else nums[i]
...
>>> summ([1,3,5])
9
>>>
Автор решения: SergFSM
→ Ссылка
укороченный вариант:
def summ(m):
return m.pop() + summ(m) if m else 0