Heim >Backend-Entwicklung >Python-Tutorial >Was ist der Unterschied in der negativen Ganzzahldivision zwischen Python 2 und Python 3?
Tricky Negative Integer Division in Python
Während der Arbeit an einer Anwendung warf das überraschende Ergebnis der Integer-Division Fragen auf. Wenn man 8 durch -7 dividiert, ist das Ergebnis -2, ein ganzzahliger Wert. Um dieses Phänomen zu verstehen, befassen wir uns mit den Feinheiten der Ganzzahldivision.
Ganzzahldivision vs. echte Division
Python 2 verwendet die Ganzzahldivision, gekennzeichnet durch „/“, was einen ganzzahligen Quotienten ergibt. Bei der Division negativer Ganzzahlen wird der Quotient auf den negativeren Wert gerundet (Bodendivision). Dies bedeutet, dass 8/-7 auf -2 gekürzt wird, obwohl der tatsächliche Wert näher bei -1,143 liegt.
Python 3 Revisited
Um diese Mehrdeutigkeit zu vermeiden, Mit Python 3 wurde eine echte Division eingeführt, die immer zu einem Float-Wert führt, es sei denn, beide Operanden sind Ganzzahlen. Dies steht im Einklang mit der mathematischen Division und macht eine manuelle Konvertierung von Operanden in Gleitkommazahlen überflüssig. Daher würde 8/-7 in Python 3 korrekt zu -1,143 ausgewertet.
Ganzzahldivision in Python 3
Wenn Sie in Python 3 immer noch eine Ganzzahldivision benötigen, ist die //-Operator kann verwendet werden. Ähnlich wie bei der Ganzzahldivision in Python 2 wird der Quotient in Richtung negativer Unendlichkeit gerundet.
Historischer Kontext
Das Verhalten der Ganzzahldivision in Python 2 wurde von historischen Programmiersprachen beeinflusst und spiegelt nicht mathematische Normen wider. Python 3 hat dieses Problem durch die Einführung einer echten Division gelöst, die den Erwartungen der meisten Entwickler entspricht.
Zusätzliche Ressourcen
Weitere Einblicke zu diesem Thema finden Sie in der Python-Erweiterung Vorschlag 238 (PEP 238) zum Thema Änderung des Divisionsoperators:
[PEP 238 -- Changing the Division Operator](https://www.python.org/dev/peps/pep-0238/ )
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied in der negativen Ganzzahldivision zwischen Python 2 und Python 3?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!