So wie die meisten Programmiersprachen verfügt auch Python über die Kontrollstruktur der for Schleife. Die Verwendung unterscheidet sich jedoch etwas und kann im ersten Moment ungewohnt erscheinen. Wir sehen uns die verschiedenen Einsatzmöglichkeiten im Detail an.
Eine der häufigsten Verwendungen der for Schleife ist die wiederholte Ausführung einer bestimmten Anweisung. Im ersten Beispiel soll ein String drei mal hinter einander ausgegeben. Zur Bestimmung der Anzahl der Schleifendurchläufe wird die range Funktion verwendet. In unserem Fall werden damit die Werte 0, 1, 2 erzeugt. Beim Durchlauf jedes dieser Elemente wird einmal der String ‚Tor!‘ ausgegeben.
1 2 3 4 |
# for Schleife als Zählschleife for i in range(3): print('Tor!', end = ' ') print() |
Tor! Tor! Tor!
Im vorherigen Beispiel haben wir nur den stop Parameter der range Funktion verwendet. Es stehen noch zwei weitere optionale Parameter zur Verfügung – start und step. Im zweiten Beispiel lassen wir die Schleife bei dem Wert 3 starten und bei dem Wert 10 enden (exklusive). Die Schrittweite wird mit 2 definiert.
1 2 3 4 |
# optionale Parameter für range for i in range(3,10,2): print(i, end = ', ') print() |
3, 5, 7, 9,
Ein weiterer häufiger Anwendungsfall ist das Durchlaufen von iterierbaren Objekten. Im nächsten Beispiel wird eine Liste mit Pflanzennamen angelegt und jedes einzelne Element ausgegeben. Die Länge der Liste wird automatisch ermittelt. Eine Verwendung von range oder len ist nicht erforderlich
1 2 3 4 5 |
# Liste anlegen und iterieren liste = ['Akazie', 'Drachenmaul', 'Hahnenfuß', 'Ringelblume'] for i in liste: print(i, end = ', ') print() |
Akazie, Drachenmaul, Hahnenfuß, Ringelblume,
Ein String Objekt ist in Python ebenfalls ein iterierbares Objekt. Mit Hilfe der Schleife ist ein Zugriff auf alle Zeichen möglich.
1 2 3 4 |
# String Objekt durchlaufen for i in 'Hallo Welt': print(i, end = ', ') print() |
H, a, l, l, o, , W, e, l, t,
Auch Dictionaries und Tupel können durchlaufen werden. Im Falle der Dictionaries kann mit der Variable i auf die Schlüssel und mit dem Arrayoperator [] auf die Werte zugegriffen werden.
1 2 3 4 5 6 7 8 9 10 |
# Dictionary durchlaufen pflanzen = {'Beifuß' : 'Artemisia vulgaris', 'Hanf':'Cannabis sativa', 'Majoran':'Origanum majorana'} for i in pflanzen: print(i, '-', pflanzen[i], end=', ') print() # Tupel durchlaufen for i in (10,15,28,55): print(i, end = ', ') print() |
Beifuß - Artemisia vulgaris, Hanf - Cannabis sativa, Majoran - Origanum majorana,
10, 15, 28, 55,
Beim Durchlaufen von Objekten kann es vorkommen, dass ein Index benötigt wird. Dies kann mit der Funktion enumerate erreicht werden. In der Variable i ist der aktuelle Wert des Index hinterlegt (0, 1, 2, …), die Variable val beinhaltet den Wert am jeweiligen Index.
1 2 3 4 |
# Index verwenden for i, val in enumerate(['a', 'b', 'c']): print('Nummer ', i, ' - ', val, sep = '', end=', ') print() |
Nummer 0 - a, Nummer 1 - b, Nummer 2 - c,
Natürlich ist es auch möglich Listen mit eigens definierten Objekten zu durchlaufen. Im letzten Beispiel erstellen wir eine Klasse namens Planze und versehen sie mit den Eigenschaften name (deutscher Name der Pflanze), bot_name (lateinischer Name der Pflanze) und kategorie (Pflanzenkategorie). Anschließend legen wir drei Pflanzen an und geben mit Hilfe der Schleife die Attribute name und bot_name aus.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Eigenes Objekt definieren und Liste durchlaufen class Pflanze: def __init__(self, name, bot_name, kategorie): self.name = name self.bot_name = bot_name self.kategorie = kategorie maulbeere = Pflanze('Maulbeere', 'Morus', 'Obstbaum') leimkraut = Pflanze('Leimkraut', 'Silene', 'Blume') wasserklee = Pflanze('Wasserklee','Menyanthes trifoliata','Teichpflanze') for i, val in enumerate([maulbeere, leimkraut, wasserklee]): print('Nummer ', i, ' - ', val.name, '(', val.bot_name, ')', sep='', end=', ') print() |
Nummer 0 - Maulbeere(Morus), Nummer 1 - Leimkraut(Silene), Nummer 2 - Wasserklee(Menyanthes trifoliata),
Eine weitere for Schleife in Python ist die for-else Schleife. Diese wird separat in diesem Artikel behandelt.
Codebeispiele herunterladen: for.zip
Hinterlasse jetzt einen Kommentar