繁体   English   中英

为什么我的打印功能老是打印0

[英]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后,您如何立即期望f0以外的任何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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM