这些python代码示例之间的区别?

时间:2014-10-12 08:41:00

标签: python

我是一个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

当两个代码示例相同时,如何生成两个不同的结果?

3 个答案:

答案 0 :(得分:5)

不完全相同的代码:

代码1:

no_div += 1

代码2:

val += x

答案 1 :(得分:1)

遇到除数时,第一个变量按1递增:

no_div += 1

第二个变量按除数递增:

val += x

这意味着第一个变体计算除数的数量。第二个变量对除数的值求和。

6的除数为123。因此,总共有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.