Subsecções


2.3.1 Tipos numéricos

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.

2.3.1.1 Determinando o tipo de uma variável

Para descobrir o tipo atual de uma variável, pode-se usar a função type():

    >>> 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.



Notas de rodapé

... 10.656
Todas as linguagens de programação convencionais utilizam este mesmo mecanismo de representação, e na prática não resultam grandes problemas com isso, mas Python deixa transparecer esta particularidade em algumas situações, como esta. O tutorial Python em http://www.python.org/docs/current/tut/ inclui uma seção sobre as nuances do uso e representação de números de ponto flutuante.