def recursive_add(s):
sum = 0
if len(s) == 1:
sum += s[0] ** 2
else:
recursive_add(s[1:])
sum += s[0]**2
return sum
s = [8, 6, 8, 4]
print recursive_add(s)
Run Code Online (Sandbox Code Playgroud)
然而,由于某种原因,8立即平方并返回64,即使它应该是最后一个被平方并加到总和的数字.
def recursive_add(s):
if s:
return s[0]**2 + recursive_add(s[1:])
else:
return 0
Run Code Online (Sandbox Code Playgroud)