Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Schleifen mit for und while

Nach dieser Lektion: Ich kann Arbeit mit einer for- oder while-Schleife wiederholen.

Lektion, 55 Min.5 BefehleLab „Linux im Alltag“: die dreißig Befehle, die Entwickelnde auswendig tippen

Eine Schleife wiederholt Zeilen

Eine Schleife wiederholt Zeilen, bis eine Grenze erreicht ist. Mit for und while erledigt ein Python-Programm in einem Augenblick, was von Hand Stunden dauern würde.

Das Lab führt ein Protokoll mit Hunderten Zeilen. Wie viele davon sind Fehler? Ein Mensch zählt Zeile für Zeile. Ein Programm zählt in einer Schleife.

Am Ende dieser Lektion

Notiz

Ich kann Arbeit mit einer for- oder while-Schleife wiederholen.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
SchleifeZeilen, die sich wiederholen
Durchlaufein einzelnes Mal, das der Schleifenblock läuft
rangeerzeugt die Zahlen von einem Anfang bis vor ein Enderange(1, 6)
Summenvariableeine Variable, die in der Schleife wächstsumme
Endlosschleifeeine Schleife, die nie aufhört

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

for geht eine Folge von Zahlen durch

Eine for-Schleife nimmt nacheinander jeden Wert einer Folge und führt den eingerückten Block einmal aus. Jede Ausführung ist ein Durchlauf.

range(1, 6) erzeugt die Zahlen 1 bis 5. Das Ende zählt nicht mit. range(5) beginnt bei 0 und endet bei 4.

Ein Beispiel: was range erzeugt

AufrufZahlenAnzahl
range(5)0, 1, 2, 3, 45
range(1, 6)1, 2, 3, 4, 55
range(2, 10, 3)2, 5, 83
range(3, 3)keine0

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Schleife im Terminal

Befehl
python3 -c "for i in range(3): print(i * 2)"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele glauben, range(1, 6) enthalte auch die 6. Das Ende zählt nicht mit. Wollen Sie die 6 dabeihaben, schreiben Sie range(1, 7).

Eine Summenvariable sammelt über die Durchläufe

Vor der Schleife setzen Sie die Summenvariable auf 0. In jedem Durchlauf addieren Sie etwas dazu. Nach der Schleife steht das Ergebnis darin.

Dieselbe Idee zählt auch: Eine Zählvariable steigt um 1, wenn ein Fall zutrifft.

Die Summe der Zahlen von 1 bis 5

Code: python
# Die Summe der Zahlen von 1 bis 5.
summe = 0
for zahl in range(1, 6):
    summe = summe + zahl
    print(zahl, summe)
print("Fertig:", summe)
# Ändern Sie 6 auf 11 und raten Sie die neue Summe vorher.

In einer Schleife zählen, was zutrifft

Verbinden Sie Schleife und if: Gehen Sie alle Zahlen durch und zählen Sie die, die eine Bedingung erfüllen. Der Rest einer Teilung mit % ist dafür das Werkzeug.

Ist zahl % 7 gleich 0, dann ist zahl ein Vielfaches von 7. Die nächsten zwei Befehle zeigen, wie ein Terminal dasselbe zählt.

Fehlerzeilen unter den ersten 60 zählen

Befehl
head -n 60 /var/log/test.log | grep -c ERROR

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Gruß-Zeilen unter den ersten 60 zählen

Befehl
head -n 60 /var/log/test.log | grep -c hello

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Was die beiden Zahlen bedeuten

Das Lab schreibt beim Start 60 Zeilen. Jede siebte ist eine Fehlerzeile, jede zehnte ein Gruß. Das sind 8 Fehler und 6 Grüße.

Dieselben Zahlen liefert eine Schleife: Sie zählt die Vielfachen von 7 und von 10 von 1 bis 60.

while läuft, solange eine Bedingung stimmt

Eine while-Schleife prüft vor jedem Durchlauf eine Bedingung. Ist sie wahr, läuft der Block, sonst endet die Schleife.

Ändert der Block nie etwas an der Bedingung, entsteht eine Endlosschleife. Prüfen Sie darum, dass jeder Durchlauf der Grenze näher kommt.

Wann ist das Quadrat mindestens 50?

Code: python
# Die erste Zahl, deren Quadrat mindestens 50 ist.
zahl = 1
while zahl * zahl < 50:
    zahl = zahl + 1
print(zahl)
# Ändern Sie 50 auf 200 und raten Sie das Ergebnis vorher.

Eine Schleife in einer Schleife

Der Block einer Schleife darf eine weitere Schleife enthalten. Die innere läuft bei jedem Durchlauf der äußeren komplett.

Der erste Befehl unten schreibt ein kleines Einmaleins in eine Datei, der zweite führt es aus. Es gibt 2 mal 3, also 6 Zeilen aus.

Zwei verschachtelte Schleifen schreiben

Befehl
printf 'for a in range(1, 3):\n    for b in range(1, 4):\n        print(a, "mal", b, "ist", a * b)\n' > einmaleins.py

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Einmaleins starten

Befehl
python3 einmaleins.py

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Weiterführend

Schreiben Sie eine Schleife, die die Summe aller Zahlen von 1 bis 100 bildet. Sagen Sie das Ergebnis vorher: Es ist 5050.

Ändern Sie dann die Schleife so, dass sie nur die geraden Zahlen addiert. Prüfen Sie Ihre Vorhersage mit Python.

Über dieses Lab und seinen Quellcode: Lab „Linux im Alltag“: die dreißig Befehle, die Entwickelnde auswendig tippen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.