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 |
Bit-shifting |
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 |