Python 运算符优先级 - 2 ** 3 ** 2 ** 1 = 512 - 不确定如何?



我是Python的新手。有人可以解释为什么 2 ** 3 ** 2 ** 1 被评估为 512。我了解PEMDAS和这里的从左到右处理,但无法弄清楚此输出的原因。多谢。

Python 运算符通常从左到右求值,除了幂运算符:

同一框中的运算符从左到右分组(除了 幂,从右到左分组(。

因此

2 ** 3 ** 2 ** 1 

2 ** (3 ** (2 ** 1))

我自己不是 Python 开发人员,所以如果我错了,其他人可以纠正我,但我冒昧地猜测这就是它的解析方式:

2 ** (3 ** (2 ** 1))
= 2 ** (3 ** 2)
= 2 ** 9
= 512

相关内容

最新更新