def divSum(number):
divisors = [1]
for i in range(2, number):
if (number % i)==0:
divisors.append(i)
return sum(divisors)
l=[]
def isFriendly(x):
if x==1:
return False
elif x in l:
return True
else:
l.append(x)
#x=divSum(x)
isFriendly(divSum(x))
z = isFriendly(20)
print(z)
但是,如果我将“ return”替换为“ print”,则可以正确打印。我尝试了一个示例函数(而不是调用isFriendly)来接受一个数字,如果输入数字为1,则返回True,否则为False,并且返回正确的输出。
任何建议表示赞赏。
答案 0 :(得分:0)
对于最后一个else循环,您不返回任何内容。这就是为什么它返回None的原因。但是,您的列表l确实被填充。
调用函数后,尝试打印l
而不是z
。