Python:数字的数字根:它返回无

Posted

技术标签:

【中文标题】Python:数字的数字根:它返回无【英文标题】:Python: digital root of a number: it returns None 【发布时间】:2020-06-09 03:17:56 【问题描述】:

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

例如,如果 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语句。 是的!改为' return sum_digit_root(sum) ',现在可以了。非常感谢。 【参考方案1】:

你忘记了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)
    #   ^^^^^^

【讨论】:

以上是关于Python:数字的数字根:它返回无的主要内容,如果未能解决你的问题,请参考以下文章

Kivy 中的数字时钟标签

给定一组数字,返回所有其他数字的产品数组(无分区)

Python/FLASK - html 表单返回字符串。如何检查它是不是包含数字?

ACM之数论数字根

返回该数字输入的 Python 不正确,但它是正确的

ACM之数论数字根