Python 我希望';正确';但是得到';无';
我有一个简单的Python脚本,它递归地检查Python 我希望';正确';但是得到';无';,python,Python,我有一个简单的Python脚本,它递归地检查n数字的范围是否是数字x的因子。如果任何数字不是因子,我将返回False,否则当n==1时,我将返回True。不过,我会不断返回NoneType,希望您能给我建议如何解决这个问题 #Function def recursive_factor_test(x, n): if n==1: return True else: if x % n == 0: #print "passed
n
数字的范围是否是数字x
的因子。如果任何数字不是因子,我将返回False
,否则当n==1
时,我将返回True
。不过,我会不断返回NoneType
,希望您能给我建议如何解决这个问题
#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
您永远不会返回递归调用的返回值:
if x % n == 0:
#print "passed {}".format(n)
return recursive_factor_test(x,n-1)
如果省略那里的return
语句,则函数将在没有return语句的情况下结束,从而返回默认的None
返回值
有了返回键
,它可以工作:
>>> print recursive_factor_test(5040,7)
True