Discuss / Python / 求助各路大神 小白有些不懂得地方

求助各路大神 小白有些不懂得地方

Topic source

def count(): fs = 0 for i in range(1, 4): def f(): fs=fs+i return fs print(count())

这是我根据廖大神的例子改编的代码,但是输出结果让我出乎意料,居然是0,不应该是3吗?先是遍历range(1,4) 然后赋值i为3,再然后才执行f()函数,所以输出结果应该为3啊。为什么会是0啊。

即使不是3,最差也应该是6啊 怎么会是0呢

我懂了 fs在f()函数里面是f的局部变量,不能把值传到外面的函数来,所以不管怎么样,fs的值始终为0

廖雪峰

#4 Created at ... [Delete] [Delete and Lock User]

你没懂,定义函数!=执行函数

def count(): fs = 0 for i in range(1, 4): def f(): print(i) return fs
print(count())

我又修改了下代码 然后去执行了一下,发现f()函数根本就没有调用,所以print(i)根本没有输出任何东西,对于定义函数!=执行函数有了更深刻的理解。各位朋友别犯我这么低级的错误啊


  • 1

Reply