Python 3.5 – Schleifen

Was sind Schleifen?

Schleifen sind ein elementarer Bestandteil jeder Programmiersprache. Sie sind besonders gut dafür geeignet, wiederkehrende Abläufe zu wiederholen.

Stell dir vor, du möchtest 100-mal den Text "Hallo" auf deiner Website darstellen. Dafür müsstest du 100x den print-Befehl kopieren und einfügen. Das ist ziemlich mühselig. Stattdessen verwenden wir Schleifen (Wiederholungen), um den Programmcode auf nur 3-4 Zeilen zu reduzieren.

Eine Schleife wird solange ausgeführt, solange die Kondition zu "True" evaluiert.

Das folgende Bild soll dir die Funktionsweise von Schleifen noch vereinfachen:

Wir wollen uns in der vorliegenden Lektion ansehen, welche Schleifen es in Python gibt und wie wir damit arbeiten können.

Die while-Schleife

Die while-Schleife in Python folgt einer einfachen Syntax:

while (Kondition):
    Statement

Solange die Kondition "Wahr" (True) ist, führe das Statement aus.

Code-Beispiel - while Schleife:

Ein Beispiel für eine while-Schleife könnte folgendermaßen aussehen.

i=10
while (i>0):
    print(i)
    i = i-1
Code ausprobieren ×

Dabei wird die while-Schleife so lange ausgeführt, bis die Kondition das Boolean False zurückgibt.

Die for-Schleife

Neben der while Schleife gibt es auch noch die for-Schleife.

Die for-Schleife wird dazu genutzt, über eine Sequenz zu iterieren. Dabei ist die Sequenz oft eine Liste oder ein Dictionary.

Die Syntax der for-Schleife sieht so aus:

for item in Sequenz:
    Anweisung(item)

Dabei kann die Variable item beliebig gewählt werden. Wir wollen uns dazu ein Beispiel ansehen.

Code-Beispiel - for-Schleife:

list = [2,3,4]
for number in list:
    print(number)
Code ausprobieren ×

Dieses Konstrukt wird in anderen Programmiersprachen gern als forEach-loop bezeichnet, ist aber in Python der Standard für der for-loop. Dies liegt daran, dass Python eine objektorientierte Programmiersprache ist.

In objektorientierten Programmiersprachen ist der forEach-loop meist deutlich praktischer als der for-loop. In nicht objektorientierten Programmiersprachen werden for-Schleifen gern genutzt, wenn bereits bekannt ist, wie oft die Schleife abgearbeitet werden soll. Dies geht auch in Python, allerdings benötigt man dafür das range-Statement.

Code-Beispiel - forEach Loop mit range-Statement:

for number in range(0,3):
    print(number)
Code ausprobieren ×

Möchte man einen foreach-Loop mit Zählvariable nutzen, gibt es dafür die enumerate-Funktion.

Code-Beispiel - forEach Loop mit Zählvariable:

list = ["a", "b" , "c"]
for x,number in enumerate(list):
    print(str(x) + number)
Code ausprobieren ×

Code-Aufgabe - Jetzt bist du dran:

Deine Aufgabe:

Programmiere deinen Code so, dass das gesamte Alphabet (a-z), zusammen mit der Position des jeweiligen Buchstabens (z.B. "Nr. 2 : Buchstabe c") im Alphabet ausgegeben wird.

  1. Benutze eine for-Schleife mit zwei Variablen: z.B. nummer und buchstabe
  2. Deine For-Schleife sollte dabei mit enumerate() durch die Liste "alphabet" gehen
  3. Gib das Ergebnis der Variablen nummer und buchstabe mit dem print-Befehl aus.

Hinweis: Die folgende Liste des Alphabets kannst du für deinen Code kopieren / einfügen:

alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']

Hier kannst du deinen Code eingeben:

Code-Aufgabe - Lösung:

Wenn du nicht weiterkommst, findest du hier die Komplettlösung zu der Aufgabe. Du kannst den folgenden Code in den Online-Editor kopieren & einfügen, um ihn zu testen.

[lp_spoiler title="Spoiler - Lösung anzeigen"]

alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']

for nummer, buchstabe in enumerate(alphabet):
    print(str(nummer)+ ":" + buchstabe)
Code ausprobieren ×

[/lp_spoiler]

Zusammenfassung:

In dieser Lektion haben wir gelernt, was Schleifen sind und was wir damit machen können. Wir haben uns die while- und die for-Schleife angesehen und haben auch gelernt, wie man das range-Statement benutzt.

Wir hoffen, du hattest Spaß und wir sehen uns in der nächsten Lektion wieder.