Heim > Backend-Entwicklung > Python-Tutorial > Warum sollte ich Dezimalschritte in Pythons „range()' vermeiden und wie kann ich ähnliche Ergebnisse erzielen?

Warum sollte ich Dezimalschritte in Pythons „range()' vermeiden und wie kann ich ähnliche Ergebnisse erzielen?

Mary-Kate Olsen
Freigeben: 2024-12-12 20:56:10
Original
477 Leute haben es durchsucht

Why Should I Avoid Decimal Steps in Python's `range()` and How Can I Achieve Similar Results?

Dezimalschrittwerte in Range() mit Vorsicht verwenden

Die Funktion „range()“ in Python wird häufig zum Durchlaufen einer Folge von verwendet Zahlen. Wenn Sie jedoch versuchen, einen dezimalen Schrittwert wie 0,1 zu verwenden, wird möglicherweise eine Fehlermeldung angezeigt, die darauf hinweist, dass das Schrittargument nicht Null sein darf.

Vermeiden Sie die direkte Verwendung von Dezimalschrittwerten

Es wird dringend davon abgeraten, dezimale Schrittwerte direkt in range() zu verwenden. Gleitkomma-Rundungsfehler können insbesondere bei kleinen Schrittwerten zu falschen Ergebnissen führen. Stattdessen wird empfohlen, das Iterationsintervall in Form der gewünschten Anzahl von Punkten auszudrücken.

Verwendung der linspace()-Funktion von NumPy

Die NumPy-Bibliothek stellt den linspace( )-Funktion, mit der Sie eine Anzahl von Punkten und die Endpunkte des Bereichs angeben können. Durch die Verwendung von linspace() können Sie Folgendes erreichen:

import numpy as np

# Get 11 equally spaced points between 0 and 1, including both endpoints
np.linspace(0, 1, 11)

# Get 10 equally spaced points between 0 and 1, excluding the right endpoint
np.linspace(0, 1, 10, endpoint=False)
Nach dem Login kopieren

Verwenden der arange()-Funktion von NumPy (mit Vorsicht)

Wenn Sie wirklich eine Floating- Um den Punktschrittwert zu ermitteln, kann die Funktion arange() von NumPy verwendet werden. Beachten Sie jedoch, dass Gleitkomma-Rundungsfehler immer noch Probleme verursachen können, wie im folgenden Beispiel gezeigt:

import numpy as np

np.arange(0.0, 1.0, 0.1)
Nach dem Login kopieren

In diesem Fall erzeugt arange() aufgrund von Rundungsfehlern stattdessen ein Array der Länge 4 des erwarteten Arrays der Länge 3. Daher ist es wichtig, die Funktion linspace() zu verwenden, wenn es auf Präzision ankommt.

Das obige ist der detaillierte Inhalt vonWarum sollte ich Dezimalschritte in Pythons „range()' vermeiden und wie kann ich ähnliche Ergebnisse erzielen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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