# 15.7: Order of Operations

- Page ID
- 16880

When more than one operator appears in an expression, the order of evaluation depends on the **rules of precedence**. For mathematical operators, Python follows mathematical convention. The acronym **PEMDAS** is a useful way to remember the rules:

**P**arentheses have the highest precedence and can be used to force an expression to evaluate in the order you want. Since expressions in parentheses are evaluated first,`2 * (3-1)`

is 4, and`(1+1)**(5-2)`

is 8. You can also use parentheses to make an expression easier to read, as in`(minute * 100) / 60`

, even if it doesn’t change the result.**E**xponentiation has the next highest precedence, so`2**1+1`

is 3, not 4, and`3*1**3`

is 3, not 27.**M**ultiplication and**D**ivision have the same precedence, which is higher than**A**ddition and**S**ubtraction, which also have the same precedence. So`2*3-1`

is 5, not 4, and`6+4/2`

is 8, not 5.- Operators with the same precedence are evaluated from left to right (except exponentiation). So in the expression
`degrees / 2 * pi`

, the division happens first and the result is multiplied by`pi`

. To divide by`2π`

, you can use parentheses or write`degrees / 2 / pi`

.

I don’t work very hard to remember rules of precedence for other operators. If I can’t tell by looking at the expression, I use parentheses to make it obvious.