なぜこれら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つの文は同等ではありませんか?なぜ-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**2
、2の累乗にして電源2が最初に実行され、次に負の符号が実行される。
所望の結果
を取得するために使用する括弧(-2)** = 4 2
の優先順位が原因 ' - ' '**' の優先順位の背後にある、使用(-2)** 2計算する-2第
に答えはここにある:HTTPS://docs.python .org/3.5/reference/expressions.html#operator-precedence。 '**'は単項負の '--'よりも高い優先順位を持ちます。さらに、 '**'は右結合である。実際には、右結合は、例として、 'a ** b ** c = a **(b ** c)'を意味します。 – nbro