vau*_*tah 24
根据文档,**具有更高的优先级-,因此您的代码相当于-(2 ** 2).要获得所需的结果,您可以将-2其括在括号中
>>> (-2) ** 2
4
Run Code Online (Sandbox Code Playgroud)
或使用内置pow功能
>>> pow(-2, 2)
4
Run Code Online (Sandbox Code Playgroud)
或math.pow函数(返回float值)
>>> import math
>>> math.pow(-2, 2)
4.0
Run Code Online (Sandbox Code Playgroud)
该**操作在减去之前完成.为了得到预期的结果,你应该这样做
print ((-2) ** 2)
Run Code Online (Sandbox Code Playgroud)
从文档:
因此,在功率和一元运算符的未表示序列中,运算符从右到左进行求值(这不会限制操作数的求值顺序):
-1**2结果-1.
文档中还提供了运算符优先级的完整详细信息.你可以看到最后一行是(expr)在使用之前强制expr的哪一个,因此结果是(-2) ** 2 = 4