我真的很困惑,为什么这段代码把零的除法器排序为一!这是我的代码,顺便说一下,我是一个初学者,所以请对我宽容一点。
def sum_divisors(n):
divisors = [1]
for i in range(2, n):
if (n % i)==0:
divisors.append(i)
return sum(divisors)
print(sum_divisors(0))
您已经提供了divisors = [1]
。当您将0作为参数传递时,for
循环将变为
for i in range(2,0)
。
这基本上意味着您的for
循环根本不会运行。因此,sum(divisors)
的默认输出将是1
。
首先,当您需要答案时,格式化会有所帮助;(
def sum_divisors(n):
divisors = [1] # Note that you initialize the list to be [1]
for i in range(2, n):
if (n % i)==0:
divisors.append(i)
return sum(divisors)
print(sum_divisors(0))
您的初始列表设置为[1]
。如果n<1.