# Specific Built-in Types

This section covers numbers, strings, lists, dictionaries, tuples, files, and other core built-in types. Compound datatypes (e.g., lists, dictionaries, and tuples) can nest inside each other arbitrarily and as deeply as required. Sets may participate in nesting as well, but may contain only immutable objects.

## Numbers

This section covers basic number types (integers, floating-point), as well as more advanced types (complex, decimals, and fractions). Numbers are always immutable (unchangeable).

### Literals and creation

Numbers are written in a variety of numeric constant forms.

`1234`, `−24`, `0`

Integers (unlimited precision)[1]

`1.23`, `3.14e-10`, `4E210`, `4.0e+210`, `1.`, `.1`

Floating-point (normally implemented as C doubles in CPython)

`0o177`, `0x9ff`, `0b1111`

Octal, hex, and binary literals for integers[2]

`3+4j`, `3.0+4.0j`, `3J`

Complex numbers

`decimal.Decimal('1.33')`, `fractions.Fraction(4, 3)`

Module-based types: decimal, fraction

`int()`, `float()`, `complex()`

Create numbers from other objects, or from strings with possible base conversion; see Built-in Functions

### Operations

Number types support all number operations (see Table 1-6). In mixed-type expressions, Python converts operands up to the type of the “highest” type, where integer is lower than floating-point, which is lower than complex. As of Python 3.0 and 2.6, integer and floating-point objects also have a handful of methods and other attributes; see Python’s Library Reference manual for details.

`>>> (2.5).as_integer_ratio() # float attributes ...`

Get Python Pocket Reference, 4th Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.