On Dec 27, 2007 10:41 PM, Marcelo Barbosa Araujo
<[EMAIL PROTECTED]> wrote:
> Sempre escuto dizer que o python tenta inferir o tipo de variável para
> cada operação e faz o typecast automático qdo possível. Alguém
> confirma essa informação?

É legal deixar claro para quem tá chegando agora que o interpretador
de Python *nunca* muda o tipo de um valor. E não faz sentido falar em
"tipo de variável" em Python, porque as variáveis em Python não têm
tipo, apenas os valores têm tipo.

No caso dos operadores aritméticos, o que acontece é que o resultado
depende dos tipos dos operandos. Por exemplo, se você divide um
inteiro por outro, o resultado é sempre um inteiro (exatamente como na
linguagem C, por sinal). Por isso a famosa pegadinha:

>>> 7/2
3

Mas:

>>> 7./2
3.5

Por sinal, essa pegadinha sumiu no Python 3.0, porque agora o operador
de divisão inteira é o //, e o / devolve 3.5 no primeiro exemplo
acima. Mas enquanto usamos o Python 2, em muitos casos vale a pena se
prevenir escrevendo divisões assim:

r = float(a)/b

Desta forma o resultado será sempre um float, mesmo que a e b sejam inteiros.

[ ]s
Luciano

Responder a