我在Python中使用递归函数遇到了麻烦 . 目标是函数递归地计算数字的总和 .
这就是我到目前为止 - 我意识到这个版本并不像它可能那样简洁,但是现在我只是想了解它为什么不能正常工作:
total = 0 #global variable declaration
def digit_sum(n):
global total #to be able to update the same variable at every level of recursion
total += n % 10 #adding the last digit to the total
n //= 10 #removing the last digit of the number
if n < 10:
total += n
return total
else:
digit_sum(n)
print 'The return value of the function is: ', digit_sum(12345)
print 'The final value stored in total is: ', total
我获得以下输出:
The return value of the function is: None
The final value stored in total is: 15
我的函数有点工作,因为存储在全局变量 total 中的最终值是正确的,但打印函数输出返回 None 而不是15 .
你能帮我理解为什么吗?
谢谢 .