一尘不染

pow运算符的计算错误

python

应该print (-2 ** 2)返回什么?根据我的计算,应该是4,但是解释器会返回-4
这是Python的事情,还是我的数学很糟糕?


阅读 163

收藏
2021-01-20

共1个答案

一尘不染

根据docs**其优先级高于-,因此您的代码等同于-(2 ** 2)。为了获得理想的结果,您可以将其-2放在括号中

>>> (-2) ** 2
4

或使用内置pow功能

>>> pow(-2, 2)
4

math.pow功能(返回float值)

>>> import math
>>> math.pow(-2, 2)
4.0
2021-01-20