from math import pow
assert pow(-3, 2) == 9
assert -3 ** 2 == -9
上記の2つのアサーションはなぜ有効ですか?python **負の値に関するmath.pow()との比較
正規の数学では、負の数に2が入力されると正の数になります。これは私が知っている普通の数学と同じですか? は負の値を無視していますが、これら2つの方法の唯一の違いは何ですか?
from math import pow
assert pow(-3, 2) == 9
assert -3 ** 2 == -9
上記の2つのアサーションはなぜ有効ですか?python **負の値に関するmath.pow()との比較
正規の数学では、負の数に2が入力されると正の数になります。これは私が知っている普通の数学と同じですか? は負の値を無視していますが、これら2つの方法の唯一の違いは何ですか?
これは、操作の実行順序によるものです。最初のケースでは、pow(-3,2)
は、入力として第1入力として-3
を受け取り、第2入力として2
を入力として取ります。操作が実行される順序は
計算3**2
変化であるので、第二のケースでは、**
は、結果の符号
を-
よりも優先されこれにより結果はになります。
pythonは力を計算した後にマイナスを計算するためです。
In [2]: -3**2
Out[2]: -9
In [3]: (-3)**2
Out[3]: 9