Dies hängt mit der von Ihnen verwendeten Python-Version zusammen. Grundsätzlich wird das C-Verhalten übernommen: Wenn Sie zwei Ganzzahlen teilen, werden die Ergebnisse auf eine Ganzzahl abgerundet. Denken Sie auch daran, dass Python die Operationen von links nach rechts ausführt, was beim Typisieren eine Rolle spielt.
Beispiel: Da dies eine Frage ist, die mir bei arithmetischen Operationen immer im Kopf auftaucht (sollte ich in float konvertieren und welche Zahl), wird ein Beispiel aus diesem Aspekt vorgestellt:
>>> a = 1/2/3/4/5/4/3
>>> a
0
Wenn wir ganze Zahlen teilen, wird es nicht überraschend, dass sie niedriger gerundet werden.
>>> a = 1/2/3/4/5/4/float(3)
>>> a
0.0
Wenn wir die letzte zu schwebende Ganzzahl typisieren, erhalten wir immer noch Null, da zu dem Zeitpunkt, an dem unsere Zahl durch das Gleitkomma geteilt wird, aufgrund der Ganzzahldivision bereits 0 geworden ist.
>>> a = 1/2/3/float(4)/5/4/3
>>> a
0.0
Gleiches Szenario wie oben, jedoch Verschiebung des Float-Typs etwas näher an die linke Seite.
>>> a = float(1)/2/3/4/5/4/3
>>> a
0.0006944444444444445
Wenn wir schließlich die erste Ganzzahl eingeben, die schwebt, ist das Ergebnis das gewünschte, da wir ausgehend von der ersten Division, dh der ganz linken, Gleitkommazahlen verwenden.
Extra 1: Wenn Sie versuchen, dies zu beantworten, um die arithmetische Auswertung zu verbessern, sollten Sie dies überprüfen
Extra 2: Bitte beachten Sie das folgende Szenario:
>>> a = float(1/2/3/4/5/4/3)
>>> a
0.0