Was ist das unerwartete Verhalten bei der Ganzzahldivision und wie wird es in Python gehandhabt?

Susan Sarandon
Freigeben: 2024-10-24 14:48:02
Original
415 Leute haben es durchsucht

What is the Unexpected Behavior in Integer Division and How is it Handled in Python?

Unerwartete Ergebnisse bei der Ganzzahldivision

Negative Ganzzahldivision in der Programmierung kann zu überraschenden Ergebnissen führen, wie zum Beispiel der Beobachtung, dass 8/-7 eine ergibt ganzzahliger Wert von -2. Dieses Ergebnis ergibt sich aus dem Konzept der Etagendivision, bei der negative Ganzzahlen auf den nächst negativen Wert abgerundet werden.

In Python 2 wird bei der Ganzzahldivision automatisch die Etagendivision angewendet. Als Ergebnis rundet Python bei der Ausführung von 8/-7 das tatsächliche Ergebnis von 8,0/(-7,0), das etwa -1,143 beträgt, auf die negativere ganze Zahl von -2 ab. Dieses Rundungsverhalten erklärt auch, warum 8/7 zu 1 führt.

Dieses Verhalten kann verwirrend sein, da es der mathematischen Erwartung widerspricht, bei einer negativen Ganzzahldivision ein gebrochenes Ergebnis zu erhalten. Es ist jedoch wichtig zu erkennen, dass die Ganzzahldivision eine eigenständige Operation ist, die Bruchteile abschneidet.

Um dieses Verhalten zu beheben, hat Python 3 eine Änderung eingeführt. In Python 3 führt die ganzzahlige Division negativer Ganzzahlen zu einem Gleitkommaergebnis. Wenn die ursprüngliche Divisionsoperation 8/(-7) wäre, wäre das Ergebnis der Bruchwert -1,143.

Wenn in Python 3 das Verhalten der Etagenteilung beibehalten werden soll, kann der //-Operator verwendet werden. Dieser Operator führt explizit eine Bodendivision durch und liefert die gleichen Ergebnisse wie der ganzzahlige Divisionsoperator in Python 2.

Weitere Einblicke finden Sie im Python Enhancement Proposal PEP 238, in dem die Änderung des Divisionsoperators in Python erläutert wird.

Das obige ist der detaillierte Inhalt vonWas ist das unerwartete Verhalten bei der Ganzzahldivision und wie wird es in Python gehandhabt?. 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!