2017-08-28 1 views
4

なぜこれら2つの文は同等ではありませんか?なぜ-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日、夜2時11分04秒)演算子(演算子の優先順位)の実行

+2

に答えはここにある:HTTPS://docs.python .org/3.5/reference/expressions.html#operator-precedence。 '**'は単項負の '--'よりも高い優先順位を持ちます。さらに、 '**'は右結合である。実際には、右結合は、例として、 'a ** b ** c = a **(b ** c)'を意味します。 – nbro

答えて

6

順序はここで問題:-2**2、2の累乗にして電源2が最初に実行され、次に負の符号が実行される。

所望の結果

を取得するために使用する括弧(-2)** = 4 2

1

の優先順位が原因 ' - ' '**' の優先順位の背後にある、使用(-2)** 2計算する-2第

関連する問題