我写了一个程序来找出一个问题的超数,即:9876=9+8+7+6=30=3+0=super digit=3 每当程序不调用自身时,这个方法就可以很好地工作,但是在上面的例子中,我将得到一个最终的整数值3,并且它将以这样的方式打印,但是当我返回它时,它将不返回任何值。我想知道为什么会这样?你知道吗
代码如下:
def super_digit(n):
sup_Digit = 0
intArray = [int(i) for i in str(n)]
for i in range(len(intArray)):
sup_Digit += intArray[i]
if sup_Digit and sup_Digit < 10:
return int(sup_Digit)
else:
super_digit(sup_Digit)
下面是我的测试用例:
from unittest import TestCase
tc = TestCase()
tc.assertEqual(super_digit(5), 5)
tc.assertEqual(super_digit(30), 3)
tc.assertEqual(super_digit(9876), 3)
tc.assertEqual(super_digit(11111111111111), 5)
tc.assertEqual(super_digit(12345678901234567890), 9)
好的,那么默认情况下'return'不会给出任何结果,所以在您的例子中,当条件为
True
时,您在'if'条件的第一部分返回,但是if条件的返回到'else'部分在哪里?你知道吗输出:
您忘记了退货声明:
相关问题 更多 >
编程相关推荐