【发布时间】:2018-05-05 21:15:24
【问题描述】:
我正在阅读 Python 简介教科书并遇到了这一行:
同一行上的运算符具有相同的优先级,并且从左到右应用,但取幂除外,它从右到左应用。
我了解其中的大部分内容,但我不明白为什么他们说取幂是从右到左应用的。他们也没有提供任何示例。另外,我可以问这样的一般性问题,还是只喜欢解决问题的问题?
【问题讨论】:
-
这个措辞有点令人困惑。它谈论的是绑定行为,这意味着在更大的表达式中,确定
**绑定到的值是由优先顺序决定的。所以在a + b ** c ** d中,先执行什么是由优先顺序决定的。 -
并且顺序遵循数学惯例,就像在加法之前应用乘法一样。
-
在示例 a + b ** c * d 中,我猜它会是 (c * d) ** (a + b),对吗?因为根据优先顺序乘法在加法之前应用。
-
**绑定比乘法或加法更紧密。所以它是c * (d ** a) + b。
标签: python python-3.x operators exponentiation