我有以下代码。
for i in range(1,number):
if (number%i) == 0:
divisorSum += i
如何在 python 中将这段代码缩减为一行
请您参考如下方法:
这是一种方法:
divisorSum += sum(i for i in range(1, number) if number % i == 0)
这是比原作更易读还是更差,由旁观者自行判断。
我使用 += 来使代码与您的代码完全相同。如果在循环之前将 divisorSum 初始化为零,则可以将 += 替换为 = 并摆脱初始化。
最后,值得注意的是您的代码仅计算 proper divisors .如果您确实需要包含数字本身,请使用 range(1, number + 1)。
