Python 当代码应该返回布尔值时,它返回“None”
但是,如果我将return替换为print,它将正确打印。我尝试了一个示例函数,而不是调用isFriendly,只接受一个数字,如果输入数字为1,则返回True,否则返回False,并返回正确的输出Python 当代码应该返回布尔值时,它返回“None”,python,python-3.x,Python,Python 3.x,但是,如果我将return替换为print,它将正确打印。我尝试了一个示例函数,而不是调用isFriendly,只接受一个数字,如果输入数字为1,则返回True,否则返回False,并返回正确的输出 感谢您的建议。您不会返回上一个else循环的任何内容。这就是为什么它一无所获。但是,您的列表l确实会被填充。 调用函数后,请尝试打印l而不是z。else没有返回任何内容。猜你的意思是返回是友好的。重复你想要达到的目标?else分支和friendly的意思是除==1之外的什么?你能更清楚地解释一下你的
感谢您的建议。您不会返回上一个else循环的任何内容。这就是为什么它一无所获。但是,您的列表l确实会被填充。
调用函数后,请尝试打印l而不是z。else没有返回任何内容。猜你的意思是返回是友好的。重复你想要达到的目标?else分支和friendly的意思是除==1之外的什么?你能更清楚地解释一下你的需求吗?第一个建议奏效了。谢谢
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)