名称错误:名称“x2”未定义[重复]

问题描述 投票:0回答:1

我正在尝试使用 PI 从传感器读取数据,并计算幅度以确定加速度,但是当我运行测试程序时,我总是收到以下错误

Time elasped: 0
Traceback (most recent call last):
  File "MMA7455.py", line 47, in <module>
    print("X = ", x2)
NameError: name 'x2' is not defined

这是我一直在使用的代码

def calculateMag():
   x = MMA7455.getValueX()
   x2 = ((x + 128) % 256) -128

   y = MMA7455.getValueY()
   y2 = ((y - 240 + 128) % 256) -128

   z = MMA7455.getValueZ()
   z2 = ((z - 64 + 128) % 256) -128

   magnitude = int(math.sqrt((x2*x2) + (y2*y2) + (z2*z2)))

return x2, y2, z2, magnitude

for i in range (1000):
   timeGo()
   calculateMag()
   print("X = ", x2)
   print("Y = ", y2)
   print("Z = ", z2)

我尝试将 x、y、z 传递到函数中,但这似乎不起作用。感谢您的帮助,我们将不胜感激。

python nameerror
1个回答
0
投票

当您从函数返回值时,您在函数内赋予它们的变量名称不一定仍然存在于该函数之外。在您的情况下,当您调用

calculateMag()
时,返回值不会去任何地方。试试这个:

x2,y2,z2,magnitude = calculateMag()

print("X = ", x2)
print("Y = ", y2)
print("Z = ", z2)
© www.soinside.com 2019 - 2024. All rights reserved.