Я практикую использование рекурсивных функций, суммируя все элементы в списке.
Функция, которую я сделал, была:
def list_sum_recursive(input_list):
#base case, list is empty
if input_list == []:
print("empty")
return
#recursive case
else:
#grab the first element
head = input_list[0]
del input_list[0]
#return the sum of the head plus the sum of the rest of the list
return head + list_sum_recursive(input_list)
Однако эта функция выдает эту ошибку:
TypeError: неподдерживаемые типы операндов для +: 'int' и 'NoneType
Я нашел решение, сделав базовый вариант return 0
вместо return
.
Но теперь мне любопытно, что делала или не делала простая return
, чтобы выдать ошибку? И почему в Python, довольно гибком и щадящем языке, возникает такая проблема?