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

Stu*_*t78 1 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
Run Code Online (Sandbox Code Playgroud)

代码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
Run Code Online (Sandbox Code Playgroud)

在调用函数时?

divisor_sum(6)
divisor2(6)
Run Code Online (Sandbox Code Playgroud)

代码输出:

3
6
Run Code Online (Sandbox Code Playgroud)

当两个代码样本相同时,它如何产生两个不同的结果?

dre*_*cat 5

代码不完全相同:

代码1:

no_div += 1
Run Code Online (Sandbox Code Playgroud)

代码2:

val += x
Run Code Online (Sandbox Code Playgroud)