我期望'真',但得到'没有'
我有一个简单的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