Heim >Backend-Entwicklung >Python-Tutorial >Warum liefert die Ganzzahldivision in Python 2 unerwartete Ergebnisse mit negativen Zahlen?

Warum liefert die Ganzzahldivision in Python 2 unerwartete Ergebnisse mit negativen Zahlen?

Linda Hamilton
Linda HamiltonOriginal
2024-10-25 02:50:30280Durchsuche

Why Does Integer Division in Python 2 Give Unexpected Results with Negative Numbers?

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:

  • 8/(-7) = -2
  • 8/7 = 1

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn