Ha a che fare con la versione di Python che usi. Fondamentalmente adotta il comportamento C: se dividi due numeri interi, i risultati saranno arrotondati per difetto a un numero intero. Inoltre, tieni presente che Python esegue le operazioni da sinistra a destra, il che gioca un ruolo importante durante la digitazione.
Esempio: poiché questa è una domanda che mi viene sempre in mente quando faccio operazioni aritmetiche (dovrei convertirle in float e quale numero), viene presentato un esempio da quell'aspetto:
>>> a = 1/2/3/4/5/4/3
>>> a
0
Quando dividiamo numeri interi, non a caso viene arrotondato per difetto.
>>> a = 1/2/3/4/5/4/float(3)
>>> a
0.0
Se digitiamo l'ultimo numero intero da float, avremo comunque zero, poiché quando il nostro numero viene diviso per il float è già diventato 0 a causa della divisione dei numeri interi.
>>> a = 1/2/3/float(4)/5/4/3
>>> a
0.0
Stesso scenario come sopra ma spostando il float tipecast un po 'più vicino al lato sinistro.
>>> a = float(1)/2/3/4/5/4/3
>>> a
0.0006944444444444445
Alla fine, quando digitiamo il primo numero intero in virgola mobile, il risultato è quello desiderato, poiché a partire dalla prima divisione, ovvero quella più a sinistra, utilizziamo i float.
Extra 1: se si sta cercando di rispondere che per migliorare la valutazione aritmetica, si dovrebbe verificare questo
Extra 2: prestare attenzione al seguente scenario:
>>> a = float(1/2/3/4/5/4/3)
>>> a
0.0