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

lon*_*ero 4 python math operators python-3.x

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

>> math.pow(-2,2)
4.0
>> -2 ** 2
-4
Run Code Online (Sandbox Code Playgroud)

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

Reb*_*que 6

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

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

(-2)**2 = 4