我期望“True”,但得到的却是“None”[重复]
- 2025-04-15 09:19:00
- admin 原创
- 26
问题描述:
我有一个简单的 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
解决方案 1:
您永远不会返回递归调用的返回值:
if x % n == 0:
#print "passed {}".format(n)
return recursive_factor_test(x,n-1)
当您省略return
那里的语句时,您的函数将在没有返回语句的情况下结束,从而恢复到默认None
返回值。
有了它return
,它就可以工作了:
>>> print recursive_factor_test(5040,7)
True
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD