pow运算符计算错误
代码 print (-2 ** 2)
应该返回什么呢?根据我的计算,它应该是 4
,但是解释器却返回了 -4
。
这是Python的问题,还是我的数学太差了呢?
4 个回答
-2
Python有个问题,它不把-2当作一个数字来看。这似乎是故意设计的,文档里也提到过。
-2被理解为-(2),也就是把正数2变成负数的意思。
通常这不会造成问题,但在表达式-a ** 2中,**这个符号的优先级比-高。所以这里的-被当作一元运算符,而不是数字-2的一部分,结果是-2 ** 2的计算结果是-2,而不是2。
1
你也可以使用数学库...
math.pow(-2,2) --> 4
-math.pow(2,2) --> -4
math.pow(4,0.5) --> 2