Tipos numéricos representam valores numéricos. Em Python há alguns tipos numéricos pré-definidos: inteiros (int), números de ponto flutuante (float), booleanos (bool) e complexos (complex). Estes tipos suportam as operações matemáticas comuns como adição, subtração, multiplicação e divisão, e podem ser convertidos entre si.
Uma observação: booleanos foram adicionados na versão Python 2.2; sua utilização é normalmente associada a expressões condicionais. Maiores detalhes sobre este tipo estão disponíveis na seção 2.4.4.
A seguir alguns exemplos de criação de variáveis numéricas:
>>> a = 1 # valor inteiro
>>> preco = 10.99 # valor ponto flutuante, ou float.
>>> t = True # valor booleano
>>> i = 4+3j # valor complexo
Valores inteiros podem também ser fornecidos em base octal e hexadecimal:
>>> a = 071
>>> print a
57
>>> a = 0xFF
>>> print a
255
Para ser considerado um float, o número deve possuir um ponto e uma casa decimal, mesmo que seja zero. O fato de ser considerado um float é importante para a operação divisão, pois dependendo do tipo dos operandos, a divisão é inteira ou em ponto flutuante.
>>> 5 / 2 # divisão inteira, resultado inteiro
2
>>> 5 / 2.0 # divisão em ponto flutuante
2.5
>>> 5 * 2.13
10.649999999999999
Atenção especial para este terceiro exemplo, que demonstra uma particularidade da representação e impressão de números de ponto flutuante. Números deste tipo, como o valor 2.13 do exemplo, possuem uma representação interna particular devido à natureza dos intrínseca dos computadores digitais; operações realizadas sobre eles têm precisão limitada, e por este motivo o resultado impresso diverge ligeiramente do resultado aritmeticamente correto. Na prática, o resultado obtido é praticamente equivalente a 10.656.
>>> a = 1
>>> print type(a)
<type 'int'>
>>> a = "hum"
>>> print type(a)
<type 'string'>
Uma das vantagens de Python são os tipos complexos que vêm pré-definidos, introduzidos na seção 1.1.2. As seções seguintes cobrem estes tipos.