Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Pythons range()-Funktion meistern: Von Grundlagen bis zu fortgeschrittenen Anwendungsfällen

Pythons range()-Funktion meistern: Von Grundlagen bis zu fortgeschrittenen Anwendungsfällen

Was ist Python range?

Pythons range() ist ein eingebauter Generator, der eine Folge von Ganzzahlen basierend auf Start-, Stopp- und optionalen Schrittwerten erzeugt. Wenn der Startwert weggelassen wird, ist er standardmäßig 0, und die Sequenz inkrementiert um 1, bis sie den Stoppwert erreicht (exklusiv). Zum Beispiel liefert range(5) die Werte 0, 1, 2, 3, 4. Die Funktion ist unverzichtbar beim Iterieren mit for-Schleifen.

In diesem Tutorial lernen Sie:

Syntax

range(start, stop, step)

Parameter

Rückgabewert

Gibt ein range-Objekt zurück, das sich wie eine unveränderliche Sequenz von Ganzzahlen verhält. Bei Konvertierung in eine Liste zeigt es die vollständige Sequenz an.

Python range()-Funktion und Historie

In Python 3 eingeführt, ersetzte range() das ältere xrange() aus Python 2. Die wesentlichen Unterschiede sind unten zusammengefasst:

range()xrange()
Gibt eine unveränderliche Sequenz von Zahlen zurück.Gibt ein Generator-Objekt zurück.
Verbraucht Speicher proportional zur Sequenzlänge.Verbraucht minimalen Speicher; erzeugt Werte lazy.
Geeignet für kleine bis mittelgroße Bereiche.Bevorzugt für große Bereiche oder unendliche Sequenzen.
Langsamer bei sehr großen Bereichen durch Speicherallokation.Schneller bei Iteration über große Bereiche.

Verwendung von range()

Unten ist ein einfaches Beispiel, das Zahlen von 0 bis 9 ausgibt:

for i in range(10):
    print(i, end=" ")

Ausgabe:

0 1 2 3 4 5 6 7 8 9

Start und Stopp in range() verwenden

Die Angabe eines Startwerts verschiebt die Sequenz:

for i in range(3, 10):
    print(i, end=" ")

Ausgabe:

3 4 5 6 7 8 9

Start, Stopp und Schritt verwenden

Durch Hinzufügen eines Schritts können Sie den Intervall zwischen Zahlen steuern:

for i in range(3, 10, 2):
    print(i, end=" ")

Ausgabe:

3 5 7 9

Werte mit positivem Schritt inkrementieren

Der Standardschritt ist 1, aber Sie können jede positive Ganzzahl angeben:

for i in range(1, 30, 5):
    print(i, end=" ")

Ausgabe:

1 6 11 16 21 26

Umgekehrter Bereich: Dekrementieren mit negativem Schritt

Ein negativer Schritt erstellt eine absteigende Sequenz:

for i in range(15, 5, -1):
    print(i, end=" ")

Ausgabe:

15 14 13 12 11 10 9 8 7 6

Gleitkommazahlen in Python range() verwenden

Das eingebaute range() akzeptiert nur Ganzzahlen. Der Versuch, einen Float zu übergeben, löst einen TypeError aus:

for i in range(10.5):
    print(i, end=" ")

Ausgabe:

Traceback (most recent call last):
  File "python_range.py", line 1, in 
    for i in range(10.5):
TypeError: 'float' object cannot be interpreted as an integer

for-Schleife mit Python range() verwenden

Range wird oft mit len() kombiniert, um über Listen-Indizes zu iterieren:

arr_list = ['MySQL', 'MongoDB', 'PostgreSQL', 'Firebase']
for i in range(len(arr_list)):
    print(arr_list[i], end=" ")

Ausgabe:

MySQL MongoDB PostgreSQL Firebase

Python range() als Liste verwenden

Die Konvertierung eines range in eine Liste ist unkompliziert:

print(list(range(10)))

Ausgabe:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Zeichen in Python range() verwenden

Während range() nur mit Ganzzahlen funktioniert, können Sie Alphabet-Sequenzen erzeugen, indem Sie Zeichen in ihre Unicode-Codepoints umwandeln:

def alphabete_erhalten(startbuchstabe, stopbuchstabe, schritt):
    for c in range(ord(startbuchstabe.lower()), ord(stopbuchstabe.lower()), schritt):
        yield chr(c)

print(list(alphabete_erhalten("a", "h", 1)))

Ausgabe:

['a', 'b', 'c', 'd', 'e', 'f', 'g']

Wie man auf Bereichs-Elemente zugreift

Sie können Werte über Iteration, Indizierung oder Konvertierung in eine Liste abrufen:

Iteration

for i in range(6):
    print(i)

Ausgabe:

0 1 2 3 4 5

Indizierung

startwert = range(5)[0]
print("Das erste Element im Bereich ist = ", startwert)
zweiterwert = range(5)[1]
print("Das zweite Element im Bereich ist = ", zweiterwert)
letzterwert = range(5)[-1]
print("Das letzte Element im Bereich ist = ", letzterwert)

Ausgabe:

Das erste Element im Bereich ist = 0
Das zweite Element im Bereich ist = 1
Das letzte Element im Bereich ist = 4

list() verwenden

print(list(range(10)))

Ausgabe:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Beispiel: Gerade Zahlen mit range() erhalten

Um gerade Zahlen bis 18 zu erzeugen:

for i in range(2, 20, 2):
    print(i, end=" ")

Ausgabe:

2 4 6 8 10 12 14 16 18

Zwei range()-Ausgaben zusammenführen

Das Kombinieren zweier range-Objekte kann mit itertools.chain erfolgen:

from itertools import chain
print("Zwei ranges zu einem zusammenführen")
frange = chain(range(10), range(10, 20, 1))
for i in frange:
    print(i, end=" ")

Ausgabe:

Zwei ranges zu einem zusammenführen
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

range() mit NumPy verwenden

NumPy's arange() spiegelt range() wider, unterstützt aber Gleitkomma-Schritte:

Syntax

arange(start, stop, step)

Beispiel

import numpy as np
for i in np.arange(10):
    print(i, end=" ")

Ausgabe:

0 1 2 3 4 5 6 7 8 9

Gleitkomma-Bereich mit NumPy

for i in np.arange(0.5, 1.5, 0.2):
    print(i, end=" ")

Ausgabe:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Da Gleitkomma-Arithmetik binär ist, zeigt die Ausgabe manchmal lange Dezimalentwicklungen. Sie können die Werte nach Bedarf runden.

Zusammenfassung

Python

  1. Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
  2. Python Lambda-Funktionen: Praxisleitfaden zu anonymen Funktionen
  3. Python Generatoren: Effiziente Iteration und fortgeschrittene Anwendungsfälle
  4. Python Lambda-Funktionen meistern: Praxisbeispiele & Best Practices
  5. Python abs()-Funktion: Absolutwerte für Zahlen & Komplexe Zahlen berechnen
  6. Python round()-Funktion erklärt mit praktischen Beispielen
  7. Pythons range()-Funktion meistern: Von Grundlagen bis zu fortgeschrittenen Anwendungsfällen
  8. Pythons map()-Funktion meistern: Syntax, Beispiele und Best Practices
  9. Pythons enumerate() meistern: Schleifen mit Indizes für Listen, Tupel, Strings und Dictionaries
  10. Python list.count(): Experten-Guide mit praktischen Beispielen