2016-08-18 5 views
1

В Python 2**3**4 = 2417851639229258349412352. Таким образом, выражение выполняется справа налево, , в то время как документация гласит слева направо. В чем причина?Python: Порядок выполнения 2 ** 3 ** 4

+3

показать ссылку на документацию. – Daniel

ответ

2

Это нормальный математический порядок, справа налево:

2 ** (3 ** 4) 
+0

И вы можете усилить это с помощью AST: 'Expr (value = BinOp (left = Num (n = 2), op = Pow(), right = BinOp (left = Num (n = 3), op = Pow() , right = Num (n = 4)))) ' –

+1

О том, что это порядок оценки, OP не подвергается сомнению. Вопрос в том, соответствует ли это поведение документации. – tom10

6

В documentation говорится, что, в то время как большинство выражений вычисляются слева направо, сравнение и экспоненцирование вычисляются справа налево.

Смежные вопросы