Python range() eingebaute Funktion

Aus der Python 3 Dokumentation

Anstatt eine Funktion zu sein, ist range tatsächlich ein unveränderlicher Sequenztyp, wie in Ranges and Sequence Types — list, tuple, range dokumentiert.

Einführung

Der range-Typ wird üblicherweise in for-Schleifen verwendet, um eine bestimmte Anzahl von Malen zu iterieren. range nimmt drei Parameter entgegen: start, stop und step. Jeder Parameter muss eine Ganzzahl sein (entweder die eingebaute int oder ein beliebiges Objekt, das die spezielle Methode index() implementiert).

Wenn nur ein Parameter angegeben wird, repräsentiert dieser den stop-Parameter. Wenn der step-Parameter ganz weggelassen wird, ist der Standardwert 1. Wenn der start-Parameter weggelassen wird, ist der Standardwert 0.

Ranges unterstützen negative Indizes, diese werden jedoch als Indizierung vom Ende der durch die positiven Indizes bestimmten Sequenz interpretiert.

***Der Vorteil des range-Typs gegenüber einer regulären list oder tuple besteht darin, dass ein range-Objekt unabhängig von der Größe des dargestellten Bereichs immer denselben (kleinen) Speicherplatz benötigt.

Eingabeparameter

Ranges implementieren alle gängigen Sequenzoperationen außer Konkatenation und Wiederholung (aufgrund der Tatsache, dass range-Objekte nur Sequenzen darstellen können, die einem strengen Muster folgen, und Wiederholung und Konkatenation dieses Muster normalerweise verletzen würden).

start:

  • Der Wert des Startparameters
  • Wenn nicht angegeben, ist der Parameter standardmäßig 0
  • Der Parameterwert ist inklusiv

stop

  • Der Wert des Stoppparameters
  • Der einzige erforderliche Parameter
  • Der Parameterwert ist exklusiv

step

  • Der Wert des Schrittparameters
  • Wenn nicht angegeben, ist der Parameter standardmäßig 1

Beispiele

Range mit nur angegebenem stop-Parameter

for i in range(5):
    print(i)
0
1
2
3
4

Range mit start- und stop-Parametern

for i in range(1, 8):
    print(i)
1
2
3
4
5
6
7

Range mit allen angegebenen Parametern

for i in range(0, 30, 5):
    print(i)
0
5
10
15
20
25

Range mit allen Parametern, wobei der stop-Parameter nicht durch den step-Parameter teilbar ist

for i in range(0, 10, 3):
    print(i)
0
3
6
9

Range mit allen Parametern, wobei die Parameter stop und step negativ sind

for i in range(0, -6, -1):
    print(i)
0
-1
-2
-3
-4
-5

Zwei Beispiele, bei denen der stop-Parameter auf 0 gesetzt ist

for i in range(0):
    print(i)
(keine Ausgabe)
for i in range(1, 0):
    print(i)
(keine Ausgabe)