Я могу заставить его работать как положено в Python, в зависимости от того, как он введен:
>>> -5 ** 2
-25
>>> (-5)**2
25
>>> pow(-5,2)
25
>>> import math
>>> math.pow(-5,2)
25.0
Я думаю, что причина, по которой первый не работает, заключается в том, как Python выполняет ПорядокОперации.