Python NameError:未定义名称全局声明 !/垃圾桶/蟒蛇3
我得到这个错误:Python NameError:未定义名称全局声明 !/垃圾桶/蟒蛇3,python,python-3.x,Python,Python 3.x,我得到这个错误: Compiler Message Runtime Error Error (stderr) Traceback (most recent call last): File "Solution.py", line 31, in <module> plusMinus(arr) File "Solution.py", line 20, in plusMinus contorNegativ += 1 NameE
Compiler Message
Runtime Error
Error (stderr)
Traceback (most recent call last):
File "Solution.py", line 31, in <module>
plusMinus(arr)
File "Solution.py", line 20, in plusMinus
contorNegativ += 1
NameError: name 'contorNegativ' is not defined
编译器消息
运行时错误
错误(stderr)
回溯(最近一次呼叫最后一次):
文件“Solution.py”,第31行,在
普鲁斯米努斯(arr)
文件“Solution.py”,第20行,plusMinus格式
contorNegativ+=1
名称错误:未定义名称“contorNegativ”
如果我在for之前声明变量并初始化它们,它就可以正常工作
为什么它不能与函数中的全局声明一起工作?您需要定义
contorPositiv
。我认为,在这方面,向全球发出的呼吁可能是在转移视线。假设这些变量是全局变量,然后调用contorPozitiv+=1
,这相当于contorPozitiv=contorPozitiv+1
。程序不知道contorPozitiv的值是多少,因此崩溃
在所有导入之后,使用简单的
contorPozitiv=0
初始化该值可能会解决此问题。其他变量也是一样
必须定义一个变量才能使用它
将此添加到for循环的上方
contorPozitiv = 0
contorNegativ = 0
contorZero = 0
您必须定义一个变量,以便在任何范围内使用它。在您的函数中,您认为
contorPozitiv+=1
的值是什么,它相当于contorPozitiv=contorPozitiv+1
?contorPozitiv=0您为什么相信这一点?你没有给0
赋值给contorPozitiv
真的,问问你自己,这应该很有启发性。在使用变量之前一定要定义变量。
contorPozitiv = 0
contorNegativ = 0
contorZero = 0