Операция **
выполняется до минуса. Чтобы получить ожидаемые результаты, вы должны сделать
print ((-2) ** 2)
Таким образом, в несравненной последовательности мощности и унарной операторы, операторы оцениваются справа налево (это не ограничивает порядок оценки для операндов):
blockquote>-1**2
приводит к-1
.Полная деталь приоритет операторов также доступен в документации. Вы можете видеть, что последняя строка -
(expr)
, которая заставляет expr оцениваться перед использованием, поэтому результат(-2) ** 2 = 4