我是一个python初学者,我试图弄清楚以下两个python代码示例。两个代码看起来相同,但打印出不同的结果。代码的主要功能是除数求和。
代码1:
def divisor_sum(n):
no_div = 0
tot = int(n / 2) + 1
for i in range(1,tot):
if n % i == 0:
no_div += 1
print no_div
代码2:
def divisor2(m):
max_div = int(m / 2) + 1
val = 0
for x in range(1, max_div):
if m % x == 0:
val += x
print val
调用函数时?
divisor_sum(6)
divisor2(6)
代码输出:
3
6
当两个代码示例相同时,如何生成两个不同的结果?
答案 0 :(得分:5)
不完全相同的代码:
代码1:
no_div += 1
代码2:
val += x
答案 1 :(得分:1)
遇到除数时,第一个变量按1
递增:
no_div += 1
第二个变量按除数递增:
val += x
这意味着第一个变体计算除数的数量。第二个变量对除数的值求和。
6
的除数为1
,2
和3
。因此,总共有3
个除数,其值总和为6
。
答案 2 :(得分:0)
第一个函数中的代码,即divisor_sum()将给出一个数字的除数计数(然后函数名称具有误导性)。另一方面,第二个函数中的代码即divisor2()将给出一个数的所有除数的总和。
两个函数都有不同的代码:
divisor_sum()具有:" no_div + = 1"这意味着将no_div增加1 divisor2()具有:" val + = x"这意味着将val的值增加x,即如果x = 2则val将变为val + 2.