Tem a ver com a versão do python que você usa. Basicamente, ele adota o comportamento C: se você dividir dois números inteiros, os resultados serão arredondados para um número inteiro. Lembre-se também de que o Python executa as operações da esquerda para a direita, o que é importante quando você faz a conversão.
Exemplo: Como essa é uma pergunta que sempre aparece na minha cabeça quando estou executando operações aritméticas (devo converter para flutuar e qual número), é apresentado um exemplo desse aspecto:
>>> a = 1/2/3/4/5/4/3
>>> a
0
Quando dividimos números inteiros, não surpreende que ele fique mais baixo.
>>> a = 1/2/3/4/5/4/float(3)
>>> a
0.0
Se digitarmos o último número inteiro a flutuar, ainda obteremos zero, pois no momento em que nosso número é dividido pelo número flutuante já se tornou 0 por causa da divisão do número inteiro.
>>> a = 1/2/3/float(4)/5/4/3
>>> a
0.0
O mesmo cenário acima, mas deslocando o tipo de flutuação um pouco mais perto do lado esquerdo.
>>> a = float(1)/2/3/4/5/4/3
>>> a
0.0006944444444444445
Finalmente, quando tipografamos o primeiro número inteiro a flutuar, o resultado é o desejado, desde o início da primeira divisão, ou seja, a mais à esquerda, usamos flutuadores.
Extra 1: Se você estiver tentando responder a isso para melhorar a avaliação aritmética, verifique este
Extra 2: tenha cuidado com o seguinte cenário:
>>> a = float(1/2/3/4/5/4/3)
>>> a
0.0