为什么-2 ** 2 == -4但是math.pow(-2,2)== 4.0?

时间:2017-08-28 01:13:17

标签: python python-3.x math operators

为什么这两个陈述不等同?

>> math.pow(-2,2)
4.0
>> -2 ** 2
-4

Python 3.5.3(默认,2017年1月19日,14:11:04)

3 个答案:

答案 0 :(得分:6)

运算符的执行顺序(运算符优先级)在这里很重要:使用-2**2,首先执行2到幂2的取幂,然后是负号。

使用括号来获得所需的结果

  

( - 2)** 2 = 4

答案 1 :(得分:1)

因为' - '的优先级落后于'**'的优先级,所以先使用(-2)** 2计算-2

答案 2 :(得分:0)

您可以查看the Python3 documentation的优先顺序。

  

-2 ** 2

计算为:-(2**2) = -4