为什么会这样:
>> 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.
它与运算符优先级有关。
尝试
(-1)**2
Run Code Online (Sandbox Code Playgroud)
**正在首先评估,然后-。因此,你得到了-1.
在pow函数的情况下,-1首先被评估。
请参阅https://docs.python.org/2/reference/expressions.html#the-power-operator 上的参考