Precedence and Associativity of Operators in Python
In Python, operators have different levels of precedence, which determine the order in which
they are evaluated. When multiple operators are present in an expression, the ones with higher
precedence are evaluated first. In the case of operators with the same precedence, their
associativity comes into play, determining the order of evaluation.
Operator Precedence and Associativity in Python
Please see the following precedence and associativity table for reference. This table lists all
operators from the highest precedence to the lowest precedence.
Precedence Operators Description Associativity
1 () Parentheses Left to right
2 x[index], x[index:index] Subscription, slicing Left to right
3 await x Await expression N/A
4 ** Exponentiation Right to left
5 +x, -x, ~x Positive, negative, bitwise NOT Right to left
Multiplication, matrix, division,
6 *, @, /, //, % Left to right
floor division, remainder
7 +, – Addition and subtraction Left to right
8 <<, >> Shifts Left to right
9 & Bitwise AND Left to right
Precedence Operators Description Associativity
10 ^ Bitwise XOR Left to right
11 | Bitwise OR Left to right
in, not in, is, is Comparisons, membership tests, Left to
12
not, <, <=, >, >=, !=, == identity tests Right
13 not x Boolean NOT Right to left
14 and Boolean AND Left to right
15 or Boolean OR Left to right
16 if-else Conditional expression Right to left
17 lambda Lambda expression N/A
Assignment expression (walrus
18 := Right to left
operator)
Precedence of Python Operators
This is used in an expression with more than one operator with different precedence to
determine which operation to perform first.