'权力'在python中

时间:2016-01-05 03:10:23

标签: python math

为什么会这样:

>> b = -1
>> b**2
1

可是:

>> -1**2
-1

如果我导入数学库,那没问题。

>> from math import pow
>> pow(b,2)
1.0
>> pow(-1,2)
1.0

3 个答案:

答案 0 :(得分:12)

从Python文档: https://docs.python.org/3/reference/expressions.html#the-power-operator

  

电力运营商比其上的一元运营商绑定得更紧密   剩下;它比右边的一元运算符更紧密。

     

因此,在一个不明确的权力和一元运算符的序列中,   运算符从右到左进行评估(这不受约束   操作数的评估顺序):-1**2会产生-1

答案 1 :(得分:3)

它与运算符优先级有关。

尝试

(-1)**2
首先评估

**,然后-。因此,你得到-1

如果pow功能,则首先评估-1

请参阅https://docs.python.org/2/reference/expressions.html#the-power-operator

上的参考资料

答案 2 :(得分:2)

因为它在1上工作而不是-1整体。这将给出预期的结果。

(-1)**2