Parentheses 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
: in this case, the parentheses don’t change the result, but they reinforce that the expression in parentheses will be evaluated first.
Exponentiation has the next highest precedence, so 2**1+1
is 3 and not 4, and 3*1**3
is 3 and not 27. Can you explain why?
Multiplication and both division operators have the same precedence, which is higher than addition and subtraction, which also have the same precedence. So 2*3-1
yields 5 rather than 4, and 5-2*2
is 1, not 6.
Operators with the same precedence are evaluated from left-to-right. In algebra we say they are left-associative. So in the expression 6-3+2
, the subtraction happens first, yielding 3. We then add 2 to get the result 5. If the operations had been evaluated from right to left, the result would have been 6-(3+2)
, which is 1.