我实现了一个功能,可以将数字的位数相加直到达到一位数字。它返回None,但打印正确答案。
def single_sum(n):
print "calling function for",n
if(n<10):
print n
return n
else:
t=0
for i in str(n):
t=t+int(i)
single_sum(t)
print single_sum(12345)
我得到的输出是:
calling function for 12345
calling function for 15
calling function for 6
6
None
答案 0 :(得分:2)
您的函数没有返回递归调用,而只是返回它:
def single_sum(n):
print "calling function for",n
if(n<10):
print n # << unnecessary print
return n
else:
t=0
for i in str(n):
t=t+int(i)
return single_sum(t) # << return the call
print single_sum(12345)
答案 1 :(得分:1)
single_sum(t)
--->
return single_sum(t)
在大多数情况下,您不会从函数中返回任何内容。