This question already has an answer here:
Global variable is not defined - Python
(1个答案)
4个月前关闭。
!/ bin / python3
我收到此错误:
如果我在for之前声明变量并对其进行初始化,则可以正常工作。
为什么在函数内部的全局声明中不起作用?
(1个答案)
4个月前关闭。
!/ bin / python3
import math
import os
import random
import re
import sys
# Complete the plusMinus function below.
def plusMinus(arr):
for i in range(0,n):
if arr[i] > 0:
global contorPozitiv
contorPozitiv += 1
elif arr[i] == 0:
global contorZero
contorZero += 1
else:
global contorNegativ
contorNegativ += 1
print (contorPozitiv / n)
print (contorNegativ / n)
print (contorZero / n)
if __name__ == '__main__':
n = int(input())
arr = list(map(int, input().rstrip().split()))
plusMinus(arr)
我收到此错误:
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
如果我在for之前声明变量并对其进行初始化,则可以正常工作。
为什么在函数内部的全局声明中不起作用?
最佳答案
您需要定义contorPositiv
。我相信对全球的呼吁可能会在这里引起麻烦。想象一下,那些变量是全局变量,那么您调用contorPozitiv += 1
等效于contorPozitiv = contorPozitiv + 1
。该程序不知道contorPozitiv
的值是什么,因此会崩溃。
在所有导入之后使用简单的contorPozitiv = 0
初始化值可能会解决此问题。所有其他变量都相同。
07-26 03:50