主要还是局部变量的原因
问题回答:
循环内的变量 i 与函数返回值 i 其实是两个不同的变量,一个是局部变量,一个是全局变量,i 的变化与变量作用域有关。 在函数内部定义了一个变量 i,但是在函数外部未定义,所以 i 是一个局部变量,在循环内部进行变更,只作用于循环内部,不会影响到函数的返回值。 如果想在函数内部通过循环改变返回值,可以通过定义一个全局变量,并将其作为返回值,示例代码如下:
i = 0
def test_func():
global i
for j in range(10):
i += j # 修改全局变量 i 的值
return i
print(test_func())
执行结果为:45,说明返回值 i 是全局变量 i 的值。