需要对Python中的**运算符进行一些澄清

Sha*_*at8 4 python operators

我想先问一下这个问题.这是作为codeacademy.com练习的一部分给我的,让我在一小时的大部分时间里感到困惑.

看看下面的代码块:

bool_one = 40 / 20 * 4 >= -4**2
Run Code Online (Sandbox Code Playgroud)

现在,我评估为"8> = 16",这是假的.

但是,codeacademy.com终端表示它是真的.当我开始编写调试代码行时,我发现问题在于如何评估"-4**2".当我在CodeAcademy的终端以及我的本地linux系统上运行它时,Python中的"-4**2"出现在"-16"......这与我在所有数学课上学到的一切相反以及我运行它的每一个计算器.无论我是以"-4*-4"还是"-4 ^ 2"或者使用"x ^ y"键"-4 [x ^ y] 2"运行它,它仍然显示为"16" .那么,对于"-4**2",python如何以"-16"出现?

有人可以帮我澄清一下吗?

TIA.

Roh*_*ain 6

来自电力运营商的文件:

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

power ::=  primary ["**" u_expr]
Run Code Online (Sandbox Code Playgroud)

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

强调我的.

因此,为了获得所需的结果,您需要添加括号-4.

>>> (-4) ** 2
16
Run Code Online (Sandbox Code Playgroud)