UnboundLocalError: local variable 'count' referenced before assignment
在"count+=1"处引发错误。我试着让它成为一个全球性的等等,但它仍然给出了一个问题。这更像是一个笑话,但我想知道为什么它不起作用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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() |
您需要将您的
1 2 3 4 5 | count=0 def getAndValidateInput(): global count #print menu #So on and so forth |
现在您应该能够访问您的count变量了。它与Python中的作用域有关。必须在要在其中使用变量的每个函数中声明变量是全局变量,而不仅仅是在定义变量的位置。
我曾经遇到过同样的问题,结果发现这与范围有关,并且在另一个函数定义中有一个函数定义。工作原理是编写单独的函数来创建和修改全局变量。例如:
1 2 3 4 5 6 | def setcount(x): global count count = x def upcount(): global count count += 1 |