我刚刚读了https://courses.cs.washington.edu/courses/cse140/13wi/eval_rules.pdf 并在第5页的开头说,表达式
6 + 7 + 8
评估为:
13 + 8
然后到
21
如果是python中的情况,为什么?
2**1**2
评估为2
而不是4
答案 0 :(得分:2)
与一元运算符相比,幂运算符在其上的绑定更紧密 剩下;它的绑定不如一元运算符那么紧密。
和:
因此,在无括号的幂和一元运算符序列中, 运算符从右到左进行评估(这不限制 操作数的评估顺序):-1 ** 2得出-1。
答案 1 :(得分:1)
因此基于python 3.x文档页面(the-power-operator)
“因此,在无括号的幂和一元运算符序列中,运算符是从从右到左进行评估的(这不限制操作数的评估顺序):” -1 ** 2 “结果为-1”
因此,该表达式的计算结果为2 ^ 1(因为1 ^ 2 = 1)本身就是2(或换句话说,用方括号(2 ^(1 ^ 2))
希望有帮助