Heim >Backend-Entwicklung >Python-Tutorial >Wann bereitet Ihnen die Ganzzahldivision in Python ein Rätsel?
Ganzzahldivision in Python: Ein Rätsel
Divisionsoperationen in Python können zu unerwarteten Ergebnissen führen, wenn negative ganze Zahlen beteiligt sind. Der folgende Ausdruck:
<code class="python">8 / -7</code>
gibt das überraschende Ergebnis von -2 zurück. Dieses Ergebnis mag kontraintuitiv erscheinen, da man erwarten könnte, dass die einfache arithmetische Operation eine negative reelle Zahl ergibt.
Verstehen des Verhaltens
Die Erklärung für dieses Verhalten liegt in der Konzept der „Bodenaufteilung“ in Python. Anders als in der Mathematik, wo eine Division immer eine reelle Zahl ergibt, rundet die Ganzzahldivision in Python das Ergebnis auf die nächste ganze Zahl ab. Dieser „Flooring“-Effekt ist für das überraschend negative ganzzahlige Ergebnis verantwortlich.
In diesem Fall berechnet die Operation 8 / -7 tatsächlich 8,0 / (-7,0), was ungefähr -1,143 entspricht. Aufgrund der ganzzahligen Division wird das Ergebnis jedoch auf -2 abgerundet.
Implikationen und Lösungen
Dieses Verhalten kann zu verwirrenden Ergebnissen führen, insbesondere beim Mischen von Positiv und negative ganze Zahlen bei Divisionsoperationen. Zum Beispiel:
<code class="python">8 / 7 # Returns 1 8 / -7 # Returns -2</code>
In Python 3 wurde dieser Eigenart begegnet, indem ein eindeutiger Operator für die Ganzzahldivision eingeführt wurde, der mit // bezeichnet wird. Durch die Verwendung dieses Operators wird sichergestellt, dass das Ergebnis immer eine Ganzzahl ist, wie im Verhalten von Python 2.
<code class="python">8 // -7 # Returns -2</code>
Fazit
Die überraschenden Ergebnisse der negativen Ganzzahldivision in Python basieren auf dem Konzept der Bodenteilung, bei der das Ergebnis auf die nächste ganze Zahl abgerundet wird. Um diese unerwarteten Ergebnisse zu vermeiden, beachten Sie Folgendes:
Das obige ist der detaillierte Inhalt vonWann bereitet Ihnen die Ganzzahldivision in Python ein Rätsel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!