我期望'真',但得到'没有'

我有一个简单的Python脚本,recursion地检查是否有一个范围的n数字是一个数字x因素。 如果任何数字不是因素,我会返回False ,否则当n==1我会返回True 。 不过,我一直在返回NoneType并会赞赏如何解决这个问题的build议。

 #Function def recursive_factor_test(x, n): if n==1: return True else: if x % n == 0: #print "passed {}".format(n) recursive_factor_test(x,n-1) else: return False #Example Expecting False print recursive_factor_test(5041,7) >>False #Example Expecting True print recursive_factor_test(5040,7) >>None type(recursive_factor_test(5040,7)) >>NoneType 

你永远不会返回recursion调用的返回值:

 if x % n == 0: #print "passed {}".format(n) return recursive_factor_test(x,n-1) 

当你在那里省略return语句时,你的函数没有return语句结束,因此回到默认的None返回值。

随着return ,它的工作原理:

 >>> print recursive_factor_test(5040,7) True