Python:一个数的数字根:它returns None

Python: digital root of a number: it returns None

给定一个数字,将数字相加得到一个新数字。将其数字相加以获得另一个新数字。继续这样做,直到你得到一个只有一位数字的数字。该数字是给定数字的数字根。

例如n = 45893,我们把4 + 5 + 8 + 9 + 3 = 29的数字相加,然后把29的数字相加,得到2 + 9 = 11。将11的数字相加得到1 + 1 = 2。由于2只有一位,所以2就是我们的数字根。

def sum_digit_root(num):
    n=str(num)
    if len(n)<=1:
        return num

    else:
        sum=0
        for i in range(len(n) ):
            sum+=int(n[i] )

        sum_digit_root(sum)


print('\n---print sum_digit_root(num)   ---------------------------', sum_digit_root(45893))        

您忘记了 else 分支中的 return 语句:

def sum_digit_root(num):
    n=str(num)
    if len(n)<=1:
        return num

    else:
        sum=0
        for i in range(len(n) ):
            sum+=int(n[i] )

        return sum_digit_root(sum)
    #   ^^^^^^