以下等式在 python x=4**3**5**7 中如何工作。有人可以解释一下它的执行顺序吗? [复制]

Posted

技术标签:

【中文标题】以下等式在 python x=4**3**5**7 中如何工作。有人可以解释一下它的执行顺序吗? [复制]【英文标题】:How does the following equation work in python x=4**3**5**7.Can someone please explain the order in which this is executed? [duplicate] 【发布时间】:2019-11-11 07:28:37 【问题描述】:

我遇到了一个在线测验问题,上面提到的方程被问到了。所以,想知道当我们有多个幂运算符(**)时它是如何执行的(顺序)。

【问题讨论】:

您查看过operator precedence 上的文档吗?如果是这样,我们可以帮助您更好地理解其中的哪一部分?特别是,从句子“同一个框中的运算符从左到右分组(取幂除外,它从右到左分组)”。 【参考方案1】:

你可以通过一些实验来解决这个问题:

>>> 2**3**4
2417851639229258349412352
>>> (2**3)**4
4096
>>> 2**(3**4)
2417851639229258349412352

由于表达式结果与您获得的 2**(3**4) 匹配,这就是它的解释方式。

这在documentation 中得到确认,其中指出:

下表总结了 Python 中的运算符优先级,从最低优先级(最少绑定)到最高优先级(最多绑定)。同一框中的运算符具有相同的优先级。除非明确给出语法,否则运算符是二元的。 同一框中的运算符从左到右分组(取幂除外,它从右到左分组)。

【讨论】:

以上是关于以下等式在 python x=4**3**5**7 中如何工作。有人可以解释一下它的执行顺序吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何用单位圆解三角不等式

2015-03 (不懂)

MT274一道漂亮的不等式题

初识python

7.22扩展题

Python3基础 ,= 一个等式给多个变量赋值