2017-08-28 38 views
4

为什么这两个陈述不相等?为什么是-2 ** 2 == -4但是math.pow(-2,2)== 4.0?

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

的Python 3.5.3(默认情况下,2017年1月19日,14时11分04秒)

+2

答案就在这里:HTTPS://docs.python .ORG/3.5 /参考/ expressions.html#操作优先级。 '**'比一元负号'-'具有更高的优先级。此外,'**'是正确的联想。在实践中,右联合意味着,举个例子,“a ** b ** c = a **(b ** c)”。 – nbro

回答

6

运营商(运算符优先级)的执行顺序重要的位置:用-2**2,2〜幂电源2首先执行,然后是负号。

使用括号以获得期望的结果

(-2)** 2 = 4

1

由于优先 ' - ' 是的 '**' 优先的背后,使用(-2)** 2来计算-2在第一

相关问题