Почему при возведении отрицательного числа в квадрат на python получается отрицательное число?
Не могу понять почему при возведении отрицательного числа в четную степерь оно остается отрицательным на python?
var = -2 ** 2
print(var)
Результат выполнения:
-4 Process finished with exit code 0
Ответы (2 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Потому что это выражение равносильно -(2 ** 2). Подробнее в таблице приоритетов операторов. Возведение в степень на одну строку выше перемены знака:
expr = '-2 ** 2'
print(ast.dump(ast.parse(expr, mode='eval'), indent=4))
Expression( body=UnaryOp( op=USub(), operand=BinOp( left=Constant(value=2), op=Pow(), right=Constant(value=2))))
Автор решения: HardRoma
→ Ссылка
Проще всего. Надо '-2' взять в скобки. Так же работает и в базовой математике.
var = (-2)**2
print(var)