# Powers in Python

### 2020-06-19

### python, self-help

In Python the power operator can yield a surprising result if you expect it, as did I, to execute from left to right. The following expression evaluates to ðŸ™€ `False`

.

```
>>> -2 ** 2 == 4
False
```

From the docs:

The power operator binds more tightly than unary operators on its left; it binds less tightly than unary operators on its right. The syntax is:

power ::= (await_expr | primary) [“**” u_expr]

Thus, in an unparenthesized sequence of power and unary operators, the operators are evaluated from right to left (this does not constrain the evaluation order for the operands): “-1**2” results in “-1”.

For the expected result, parenthesize the left value (or use the `pow()`

function).

```
>>> (-2)**2 == 4
True
>>> math.pow(-2, 2) == 4
True
```