UnboundLocalError:在assignmen之前引用了局部变量“count”

2024-10-01 11:29:18 发布

您现在位置:Python中文网/ 问答频道 /正文

在“count+=1”时抛出错误。我试着把它变成一个全球性的东西,但它还是给了一个问题。这更像是个玩笑,但我想知道它为什么不起作用。在

import math
def delT():
    #inputs
    #float inputs
    #do math
    #print results
    global count
    count=0
    def getAndValidateNext():
        #print menu
        getNext=input("select something")
        acceptNext=["things","that","work"]
        while getNext not in acceptNext:
            count+=1
            print("Not a listed option.")
            if count==5:
                print("get good.")
                return
            return(getAndVadlidateNext())
        if getNext in nextRestart:
            print()
            return(delT())
        if getNext in nextExit:
            return
    getAndVadlidateNext()
delT()

Tags: inimportreturnifdefcount错误math
3条回答

global count应该在getAndValidateInput()函数内。在

有一次我遇到了同样的问题,结果发现它与作用域有关,并且在另一个函数定义中有一个函数定义。有效的方法是编写单独的函数来创建和修改全局变量。例如:

def setcount(x):
    global count
    count = x
def upcount():
    global count
    count += 1

您需要将global关键字下移到函数中。在

count=0
def getAndValidateInput():
    global count
    #print menu
    #So on and so forth

现在应该可以访问count变量了。它与Python中的作用域有关。你必须声明一个变量在你想要使用它的每个函数中是全局的,而不仅仅是定义它的地方。在

相关问题 更多 >