# Built-in Types and Operators

## Operators and Precedence

Table 1-1 lists Python’s expression operators. Operators in lower cells of the table have higher precedence (i.e., bind tighter, when used in mixed expressions without parentheses).

Table 1-1. Operators and Precedence

Operators

Description

```X or Y,
lambda args: expr```

Logical ‘or’ (Y is only evaluated if X is false), anonymous function

`X and Y`

Logical ‘and’ (Y is only evaluated if X is true)

`not X`

Logical negation

```X < Y, X <= Y, X > Y, X >= Y, X == Y,
X <> Y, X != Y,
X is Y, X is not Y,
X in S, X not in S```

Comparison operators, equality operators, identity tests, sequence membership

`X | Y`

Bitwise ‘or’

`X ^ Y`

Bitwise ‘exclusive or’

`X & Y`

Bitwise ‘and’

`X << Y, X >> Y`

Shift X left or right by Y bits

`X + Y, X — Y`

`X * Y, X / Y, X % Y`

Multiply/repetition, divide, remainder/format

`-X, +X, ~X, X**Y`

Unary negation, identity, bitwise complement, power

```X[i], X[i:j],
X.attr, X( . . . )```

Indexing, slicing, qualification, function calls

`( . . . ), [ . . . ], { . . . }, ` . . . ``

Tuple, list, dictionary, conversion to string

## Operations by Category

All types support comparisons and boolean operations.

• True means any non-zero number, or any non-empty collection object (list, dictionary, etc.). The special object None is false.

• Comparisons return 1 or 0 and are applied recursively in compound objects as needed to determine a result.

• Boolean and and or operators stop as soon as a result is known (short-circuit) and return an operand object.

Table 1-2. Comparisons ...

Get Python Pocket Reference now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.