0%

Arbeit mit Schleifen wiederholen · Übung

Wähle Start, Ende und Schrittweite

Die vorherige Lektion verwendete ein oder zwei Argumente mit range(). Mit einem dritten Argument bestimmst du den Abstand zwischen den Zahlen.

Das sind die drei Formen:

range(stop)
range(start, stop)
range(start, stop, step)
  • start ist die erste Zahl und hat den Standardwert 0;

  • stop ist die Grenze, die nie eingeschlossen ist;

  • step ist die Zahl, die jedes Mal addiert wird, und hat den Standardwert 1.

Wähle eine positive Schrittweite

Dieser Bereich beginnt bei null und addiert jedes Mal fünf:

Try it

Er erzeugt 0, 5, 10, 15 und 20. Eine weitere Addition von fünf würde den ausgeschlossenen Endwert 25 erreichen. Deshalb endet der Bereich.

Dasselbe Muster kann gerade Zahlen durchlaufen:

Try it

Das gibt 2, 4, 6, 8 und 10 in getrennten Zeilen aus.

Zähle mit einer negativen Schrittweite rückwärts

Eine negative Schrittweite lässt die Zahlen kleiner werden:

Try it

Dieser Bereich beginnt bei 3, zieht jedes Mal 1 ab und stoppt vor 0. Er erzeugt deshalb 3, 2 und 1.

Soll der Countdown null einschließen, verschiebe die ausgeschlossene Endgrenze einen Schritt weiter:

range(3, -1, -1)

Das erzeugt 3, 2, 1 und 0.

Die Richtung muss zur Schrittweite passen. Eine positive Schrittweite bewegt sich auf ein größeres Ende zu. Eine negative bewegt sich auf ein kleineres Ende zu.

Liegt der Start in dieser Richtung bereits am Ende oder darüber hinaus, ist der Bereich leer. Beispielsweise erzeugen range(0), range(4, 4) und range(0, 5, -1) keine Werte. Eine Schleife darüber hat also null Durchläufe. Eine Schrittweite von null ist etwas anderes: range(0, 5, 0) löst einen ValueError aus, weil die Schrittweite die Zahl verändern muss.

Was gibt dieser Code aus?

for value in range(10, 0, -3):
    print(value)

Welcher Aufruf zählt von 5 rückwärts und schließt 0 ein?

Erstelle einen Bereich mit Schrittweite

Die Schleife im Editor erzeugt derzeit keine Werte. Ändere nur ihren Aufruf von range(), sodass sie von 10 in Dreierschritten rückwärts zählt und 10, 7, 4 und 1 erzeugt.

Aufgabe

Ändere den Aufruf range(0).

  • Beginne bei 10.

  • Stoppe vor 0.

  • Verwende die Schrittweite -3.

  • Lass den Schleifenrumpf und die letzte Zeile print(values) unverändert.

Die fertige Liste soll [10, 7, 4, 1] sein.