为什么Python在打印正确的值但却返回无值?

2024-04-25 03:46:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我实现了一个函数,将数字的位数相加,直到达到一位数。它返回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

Tags: 函数答案noneforreturnifdeffunction
2条回答
        single_sum(t)

->

        return single_sum(t)

在大多数情况下,你不会从你的函数中返回任何东西。你知道吗

您的函数并没有返回递归调用,它只是使它:

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)

相关问题 更多 >