Heim >Backend-Entwicklung >Python-Tutorial >Warum führt Python 3 eine Gleitkommadivision anstelle einer Ganzzahldivision durch?

Warum führt Python 3 eine Gleitkommadivision anstelle einer Ganzzahldivision durch?

Barbara Streisand
Barbara StreisandOriginal
2024-12-14 18:27:16929Durchsuche

Why Does Python 3 Perform Floating-Point Division Instead of Integer Division?

Warum Python eine Gleitkommadivision für die Ganzzahldivision durchführt

In neueren Versionen von Python (3 und höher) ergibt die Ganzzahldivision (Division zweier Ganzzahlen) eine Gleitkommadivision statt eine ganze Zahl. Dieses Verhalten unterscheidet sich von früheren Versionen, die ganzzahlige Ergebnisse für ganzzahlige Operanden bevorzugten.

Bedenken Sie die folgende Unterteilung in Python 3:

>>> 2 / 2
1.0

Dieses überraschende Ergebnis kann Verwirrung stiften, insbesondere wenn Sie es sind an ältere Python-Versionen gewöhnt.

Der Grund für die Änderung

Die Begründung für diese Änderung ist dokumentiert in PEP-238: Ändern des Divisionsoperators. Der Vorschlag zielte darauf ab:

  • Eindeutige Etagenunterteilung einzuführen, die durch den //-Operator gekennzeichnet wird.
  • Das Potenzial für unbeabsichtigte Typkonvertierungen und Roundtrip-Fehler bei Operanden gemischter Typen zu eliminieren.

Auswirkungen auf Ihren Code

Diese Änderung hat mehrere Auswirkungen für Ihren Python-Code:

  • Wenn Sie eine ganzzahlige Division (gegen Null gerundet) benötigen, verwenden Sie explizit den //-Operator.
  • Wenn Sie ein Float-Ergebnis erwarten, ist eine Umwandlung nicht erforderlich.
  • Für maximale Lesbarkeit sollten Sie die Operatoren // und / mit Bedacht verwenden, um Ihre Absicht zu vermitteln deutlich.

Beispiel:

# Explicit floor division
result = 2 // 2  # 1

# Float division
result = 2 / 2  # 1.0

Zusätzliche Ressourcen

  • [PEP-238: Ändern des Divisionsoperators](https://www. python.org/dev/peps/pep-0238/)

Das obige ist der detaillierte Inhalt vonWarum führt Python 3 eine Gleitkommadivision anstelle einer Ganzzahldivision durch?. 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