Essa é uma questão simples para quem já tem uma certa noção de Python ou para quem já migrou de vez para Python 3, mas para quem está começando e usa Python 2 ou precisa dar suporte para essa versão, este artigo pode ajudar.
Em Python 2 quando se faz divisões em que os operandos são inteiros o interpretador do Python automaticamente trunca a parte fracionada retornando apenas o valor inteiro. Exemplo:
>>> 3 / 4 0
Veja que ele retornou um inteiro e o que queremos é o valor fracionado que é:
0.75
Para resolver isso, precisamos explicitamente dizer que um dos operandos é um decimal(float) e a duas formas de fazer isso. Podemos em um dos operados colocar um nº.0 ou envolver com a função float(). Exemplo com as duas forma:
>>> 3 / 4.0 0.75
ou
>>> 3/ float(4) 0.75
Essa questão já foi resolvida no Python 3, então lá não a necessidade de transformar nenhum valor em float para receber um valor do mesmo tipo.
Este texto foi originalmente publicado no Medium e posteriormente migrado para este site.