Я практикуюсь с использованием рекурсивных функций, суммируя все элементы в списке.
Я сделал следующую функцию:
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, языке, который является довольно гибким и прощающим, такая проблема является проблемой?