Operators and Expressions in Python
 Mar 31, 2006
Order of Evaluation
Table 4.2 lists the order of operation (precedence rules) for Python operators. All operators except the power (**) operator are evaluated from left to right and are listed in the table from highest to lowest precedence. That is, operators listed first in the table are evaluated before operators listed later. (Note that operators included together within subsections, such as x * y, x / y, x // y, and x % y, have equal precedence.)
Table 4.2 Order of Evaluation (Highest to Lowest)
Operator 
Name 
(...), [...], {...} 
Tuple, list, and dictionary creation 
´...´ 
String conversion 
s[i], s[i:j] 
Indexing and slicing 
s.attr 
Attributes 
f(...) 
Function calls 
+x, x, ~x 
Unary operators 
x ** y 
Power (right associative) 
x * y, x / y, x // y, x % y 
Multiplication, division, floor division, modulo 
x + y, x  y 
Addition, subtraction 
x << y, x >> y 
Bitshifting 
x & y 
Bitwise and 
x ^ y 
Bitwise exclusive or 
x  y 
Bitwise or 
x < y, x <= y, x > y, x >= y, 
Comparison, identity, and sequence membership tests 
x == y, x != y 

x <> y 

x is y, x is not y 

x in s, x not in s 

not x 
Logical negation 
x and y 
Logical and 
x or y 
Logical or 
lambda args: expr 
Anonymous function 