为什么这个递归求和函数返回None?

pur*_*ons 1 python recursion

def recursiveadd(x,sum1):
    if x > 0:
        sum1 += x
        recursiveadd(x-1,sum1)
    else:
        return sum1

print recursiveadd(100,0)
Run Code Online (Sandbox Code Playgroud)

在添加之后插入"print sum1"表示sum1正在增加,所以我不明白为什么函数返回None.我唯一能想到的是sum1在返回之前以某种方式重置为0,但我不知道为什么会这样.

wye*_*bee 10

你需要写

def recursiveadd(x,sum1):
    if x > 0:
        sum1 += x
        return recursiveadd(x-1,sum1)
    else:
        return sum1

print recursiveadd(100,0)
Run Code Online (Sandbox Code Playgroud)