我想编写一个递归函数来计算数组中元素的总和,但是当我将数组传递给函数时,它认为我传递了一个整数并写道没有 len() 函数
arr1 = [1, 2, 3, 4, 5, 6]
def rec_sum(arr):
if len(arr) == 0:
return 0
else:
return(arr[len(arr) - 1] + rec_sum(arr.pop(len(arr) - 1)))
print(rec_sum(arr1))
Python 的
list.pop()
方法会删除弹出的元素,因此您将一个整数传递给递归函数调用,而不是另一个列表。尝试使用列表切片:
arr1 = [1, 2, 3, 4, 5, 6]
def rec_sum(arr):
if len(arr) == 0:
return 0
else:
return(arr[len(arr) - 1] + rec_sum(arr[:len(arr)-1]))
print(rec_sum(arr1))
输出:
21