我有一个简单的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 {}".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
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 11
您永远不会返回递归调用的返回值:
if x % n == 0:
#print "passed {}".format(n)
return recursive_factor_test(x,n-1)
Run Code Online (Sandbox Code Playgroud)
当你省略return
那里的语句时,你的函数在没有return语句的情况下结束,从而回退到默认的None
返回值.
有了return
它,它的工作原理:
>>> print recursive_factor_test(5040,7)
True
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
801 次 |
最近记录: |