Heim >Backend-Entwicklung >Python-Tutorial >Wann bereitet Ihnen die Ganzzahldivision in Python ein Rätsel?

Wann bereitet Ihnen die Ganzzahldivision in Python ein Rätsel?

Linda Hamilton
Linda HamiltonOriginal
2024-10-24 11:57:02329Durchsuche

When Does Integer Division in Python Puzzle You?

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:

  • Verwenden Sie eine Gleitkommadivision (8,0 / -7,0), um ein reelles Zahlenergebnis zu erhalten.
  • Verwenden Sie explizit den //-Operator in Python 3 für Ganzzahldivision.
  • Achten Sie auf mögliche Überraschungen, wenn Sie positive und negative Ganzzahlen in Divisionsoperationen mischen.

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!

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