我只是想编写递归代码,但是出现了这个错误。我的错误在哪里?
我试图识别所有变量,但是它不起作用。
def sum(arr):
if len(arr) > 1:
answer = int(arr.pop()[0] + sum(arr))
return answer
else:
return arr[0]
print(str(sum([1, 45])))
我希望递归能够正常工作,但事实并非如此。它必须给出数组的和。
答案 0 :(得分:1)
arr.pop
返回并删除列表的最后一个元素。因此它返回一个int,而不是int列表。
https://docs.python.org/2/library/array.html#array.array.pop
这是我如何修复您的代码。我只是从arr.pop()中删除了[0]
,它修复了代码并还删除了一些不必要的强制转换
def sum(arr):
if len(arr) > 1:
answer = arr.pop() + sum(arr)
return answer
else:
return arr[0]
print(sum([1, 45]))