2017-08-28 72 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在第一

相關問題