The following table summarizes the operator precedences in Python, from lowest precedence (least binding) to highest precedence (most binding). Operators in the same box have the same precedence. Unless the syntax is explicitly given, operators are binary. Operators in the same box group left to right (except for comparisons, including tests, which all have the same precedence and chain from left to right -- see section 5.9 - and exponentiation, which groups from right to left).
Operator | Description |
---|---|
lambda | Lambda expression |
or | Boolean OR |
and | Boolean AND |
not x | Boolean NOT |
in, not in | Membership tests |
is, is not | Identity tests |
< , <= , > , >= ,
<> , != , == |
Comparisons |
| |
Bitwise OR |
^ |
Bitwise XOR |
& |
Bitwise AND |
<< , >> |
Shifts |
+ , - |
Addition and subtraction |
* , / , % |
Multiplication, division, remainder |
+x , -x |
Positive, negative |
~x |
Bitwise not |
** |
Exponentiation |
x.attribute |
Attribute reference |
x[index] |
Subscription |
x[index:index] |
Slicing |
f(arguments...) |
Function call |
(expressions...) |
Binding or tuple display |
[expressions...] |
List display |
{key:datum...} |
Dictionary display |
`expressions...` |
String conversion |