python中的"权力"

8 python math

为什么会这样:

>> b = -1
>> b**2
1
Run Code Online (Sandbox Code Playgroud)

但:

>> -1**2
-1
Run Code Online (Sandbox Code Playgroud)

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

>> from math import pow
>> pow(b,2)
1.0
>> pow(-1,2)
1.0
Run Code Online (Sandbox Code Playgroud)

ast*_*yam 13

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

权力运算符比左边的一元运算符绑定得更紧密; 它比右边的一元运算符更紧密.

因此,在功率和一元运算符的未表示序列中,运算符从右到左进行求值(这不会限制操作数的求值顺序):-1**2结果-1.

  • 这很有趣,因为文档包含一个与OP的问题完全匹配的示例 (9认同)

dop*_*ime 5

它与运算符优先级有关。

尝试

(-1)**2
Run Code Online (Sandbox Code Playgroud)

**正在首先评估,然后-。因此,你得到了-1.

在pow函数的情况下,-1首先被评估。

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

  • 哦,喜欢-(1**2),非常感谢! (2认同)