为什么 -2**2 == -4 但 math.pow(-2, 2) == 4.0?
Why is -2**2 == -4 but 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**2
,首先执行 2 的 2 次幂,然后是负号。
使用括号获得想要的结果
(-2)**2 = 4
您可以从 the Python3 documentation 查看优先级。
-2**2
计算为:-(2**2)
= -4
.
因为'-'的优先级在'**'的优先级之后,所以先用(-2)**2计算-2
为什么这两个语句不等价?
>> math.pow(-2,2)
4.0
>> -2 ** 2
-4
Python 3.5.3(默认,2017 年 1 月 19 日,14:11:04)
运算符的执行顺序(运算符优先级)在这里很重要:对于 -2**2
,首先执行 2 的 2 次幂,然后是负号。
使用括号获得想要的结果
(-2)**2 = 4
您可以从 the Python3 documentation 查看优先级。
-2**2
计算为:-(2**2)
= -4
.
因为'-'的优先级在'**'的优先级之后,所以先用(-2)**2计算-2