Was ist der Unterschied in der negativen Ganzzahldivision zwischen Python 2 und Python 3?

Barbara Streisand
Freigeben: 2024-10-24 10:45:02
Original
209 Leute haben es durchsucht

What's the Difference in Negative Integer Division between Python 2 and 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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!