试图以递归方式添加数字的平方

VPN*_*IME 0 python

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,即使它应该是最后一个被平方并加到总和的数字.

Mat*_*euW 6

def recursive_add(s):
    if s:
        return s[0]**2 + recursive_add(s[1:])
    else:
        return 0
Run Code Online (Sandbox Code Playgroud)