为什么我的函数返回None而不是数字?

时间:2020-06-05 09:22:48

标签: python-3.x recursion

给出n,取n的数字之和。如果该值超过一位,请继续以这种方式减少直到产生一位数字。这仅适用于自然数。

def digital_root(n):
    sum = 0
    print(n)
    lst = list(str(n))
    for num in lst:
        sum += int(num)
    if len(str(sum)) > 1:
        digital_root(sum)
    else:
        return sum

1 个答案:

答案 0 :(得分:0)

您可以尝试;

>>> def digital_root(n):
...     sm = sum(int(x) for x in str(n))
...     if (sm > 9): return digital_root(sm)
...     else: return sm
... 

在递归情况下,添加了return以返回结果