Weil der Parser das anders parst:
Code: Alles auswählen
In [1]: import ast
In [2]: exp = ast.parse('5**5**5')
In [3]: ast.dump(exp)
Out[3]: 'Module(body=[Expr(value=BinOp(left=Num(n=5), op=Pow(), right=BinOp(left
=Num(n=5), op=Pow(), right=Num(n=5))))])'
In [4]: exp = ast.parse('(5**5)**5')
In [5]: ast.dump(exp)
Out[5]: 'Module(body=[Expr(value=BinOp(left=BinOp(left=Num(n=5), op=Pow(), right
=Num(n=5)), op=Pow(), right=Num(n=5)))])'
Und falls du den nicht unbedingt umschreiben willst, sehe ich keine andere Möglichkeit um das zu ändern.
(Ich gehe mal davon aus, dass dir klar ist, warum da mathematisch gesehen zwei verschiedene Zahlen heraus kommen
)
Edit: Bitte kürze mal die lange Zahl, das verunstaltet ja völlig das Forum...
Edit2: Danke Leonidas