如何在Python递归函数中将具有多个值的变量相加?

Rui*_*Rui 1 python recursion

所以我在网上研究递归函数.并且一个问题要求我编写一个函数来将数字的数字加在一起.例如(1023) - > 1 + 0 + 2 + 3 = 6.我使用%和//每次都去掉一个数字.但是,我不知道如何将它们加在一起.我能得到的最接近的是打印出每个数字.任何人都可以帮我解决或者给我一个提示吗?

def digitalSum(n):
    if n < 10:
        sum_total = n
        print(sum_total)
    else:
        sum_total = n % 10
        digitalSum((n - (n % 10))//10)

        print(sum_total)

digitalSum(1213)
Run Code Online (Sandbox Code Playgroud)

per*_*eal 5

您的函数应返回当前数字加上其余数字的总和:

def digitalSum(n):
    if n < 10: return n
    return n % 10 + digitalSum(n // 10) 

print digitalSum(1213)
Run Code Online (Sandbox Code Playgroud)

为完整起见,您还可以处理负数:

def digitalSum(n):
    if n < 0: sign = -1
    else: sign = 1
    n = abs(n)
    if n < 10: return n
    return sign * (n % 10 + digitalSum(n // 10)) 

print digitalSum(1213)
Run Code Online (Sandbox Code Playgroud)