Tiene que ver con la versión de Python que usas. Básicamente adopta el comportamiento C: si divide dos enteros, los resultados se redondearán a un entero. También tenga en cuenta que Python realiza las operaciones de izquierda a derecha, lo que juega un papel cuando escribe.
Ejemplo: dado que esta es una pregunta que siempre aparece en mi cabeza cuando estoy haciendo operaciones aritméticas (si debo convertir a flotante y qué número), se presenta un ejemplo de ese aspecto:
>>> a = 1/2/3/4/5/4/3
>>> a
0
Cuando dividimos enteros, no sorprende que se redondee más bajo.
>>> a = 1/2/3/4/5/4/float(3)
>>> a
0.0
Si escribimos el último número entero para flotar, todavía obtendremos cero, ya que para cuando nuestro número se divida entre el flotador ya se ha convertido en 0 debido a la división del entero.
>>> a = 1/2/3/float(4)/5/4/3
>>> a
0.0
El mismo escenario que el anterior pero desplazando el tipo de letra flotante un poco más cerca del lado izquierdo.
>>> a = float(1)/2/3/4/5/4/3
>>> a
0.0006944444444444445
Finalmente, cuando escribimos el primer número entero para flotar, el resultado es el deseado, ya que comenzando desde la primera división, es decir, la más a la izquierda, usamos flotantes.
Extra 1: Si está tratando de responder eso para mejorar la evaluación aritmética, debe verificar esto
Extra 2: Tenga cuidado con el siguiente escenario:
>>> a = float(1/2/3/4/5/4/3)
>>> a
0.0