[英]Why does my print function constantly print 0
如果我每次都添加一个,为什么我的打印函数会不断打印相同的变量?
def h():
f = 0
print(f)
f+=1
while True:
h()
每次 h() 运行时,它都会将 f 的值设置为 0。
我相信这样的事情就是你想要做的,但你可能需要修改它,这样它就不会永远计数。
def h():
f = 0
while True:
print(f)
f+=1
h()
对于我们大多数人来说,我们看着它,想知道在将f
设置为0
后,您如何立即期望f
为0
以外的任何0
。
所以,试着想象一下你期望它如何工作,也许你期望f = 0
只初始化f
一次。 但是,情况并非如此, f
是该函数的局部变量 - 每次函数运行时它都是一个新变量,并且每次都将其初始化为0
。
我怀疑你的意图是这样的:
f = 0
def h():
global f
print(f)
f += 1
while True:
h()
在这里, f
被全局初始化一次,并且该函数引用全局f
而不是它自己的局部变量。 当函数修改f
,下一次调用该函数也将引用相同的全局f
。
试试这个,解释是你在 f 上加了 1,但你没有在屏幕上打印,所以你的主程序不能告诉你每次进入 h 函数时值已经改变,它将 h 的值重置为 0
def h():
f = 0
print(f)
f+=1
print(f)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.