Heim >Backend-Entwicklung >Python-Tutorial >Warum liefert die Ganzzahldivision in Python 2 unerwartete Ergebnisse mit negativen Zahlen?
Unerwartete Ergebnisse der Ganzzahldivision
In Python 2 kann die Durchführung einer Ganzzahldivision mit negativen Zahlen zu überraschenden Ergebnissen führen. Wenn man beispielsweise 8 durch -7 dividiert, ist das Ergebnis -2, obwohl der erwartete Quotient bei etwa -1,143 liegt.
Grundlagenteilung verstehen
Integerdivision, oft Wird in Python 2 als „Bodendivision“ bezeichnet und rundet das Ergebnis auf die nächste Ganzzahl ab. Dieses Verhalten führt dazu, dass selbst bei der Division positiver und negativer Ganzzahlen die Ausgabe immer negativer ist.
Beispielrätsel
Dieses Abrundungsprinzip führt zu verwirrenden Ergebnissen, wie dargestellt durch die folgenden Divisionsoperationen:
Python 3 Fixes die Anomalie
In Python 3 ist dieses Problem behoben. Für die gleiche Operation, 8/(-7), beträgt die Ausgabe -1,143. Wenn das gewünschte Verhalten jedoch eine Ganzzahldivision ist, repliziert die Verwendung des Operators „//“ das Ergebnis aus Python 2.
Technische Erklärung
In Python 2 ist die Der Typ einer Ganzzahl dividiert durch eine andere Ganzzahl ist ebenfalls eine Ganzzahl. Daher wird das Ergebnis auf die nächste ganze Zahl abgerundet. Python 3 führt eine automatische Typkonvertierung ein, die es ermöglicht, das Ergebnis als Gleitkommazahl darzustellen und dabei seinen tatsächlichen Wert beizubehalten.
Das obige ist der detaillierte Inhalt vonWarum liefert die Ganzzahldivision in Python 2 unerwartete Ergebnisse mit negativen Zahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!