Schleifen#

Wenn Sie möchten, dass Code wiederholt ausgeführt wird, können Sie Schleifen verwenden.

Siehe auch

For-Schleifen#

Um über einen Bereich von Zahlen zu iterieren, können wir eine einfache for-Schleife und die range-Funktion verwenden.

In der folgenden Zelle wird der Befehl print(i) mehrmals für verschiedene Werte von i ausgeführt. Wir iterieren über einen Bereich von Werten:

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

Beachten Sie, dass der obige eingerückte Code nur für die erste angegebene Zahl (0) ausgeführt wird und bis zur letzten Zahl (5) fortgesetzt wird, diese aber nicht einschließt.

Sie können auch über einen Zahlenbereich mit einem definierten Schritt iterieren, zum Beispiel Schritt 3:

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

Das Iterieren über Arrays ermöglicht es Ihnen, etwas mit allen Array-Elementen zu tun:

for animal in ["Dog", "Cat", "Mouse"]:
    print(animal)
Dog
Cat
Mouse

Sie können parallel über zwei Arrays paarweise iterieren, wie folgt:

# going through arrays pair-wise
measurement_1 = [1, 9, 7, 1, 2, 8, 9, 2, 1, 7, 8]
measurement_2 = [4, 5, 5, 7, 4, 5, 4, 6, 6, 5, 4]

for m_1, m_2 in zip(measurement_1, measurement_2):
    print("Paired measurements: " + str(m_1) + " and " + str(m_2))
Paired measurements: 1 and 4
Paired measurements: 9 and 5
Paired measurements: 7 and 5
Paired measurements: 1 and 7
Paired measurements: 2 and 4
Paired measurements: 8 and 5
Paired measurements: 9 and 4
Paired measurements: 2 and 6
Paired measurements: 1 and 6
Paired measurements: 7 and 5
Paired measurements: 8 and 4

Wenn Sie auch den Index des Elements in der Liste wissen möchten, verwenden Sie die enumerate-Funktion:

# numbering and iterating through collections
for index, animal in enumerate(["Dog", "Cat", "Mouse"]):
    print("The animal number " + str(index) + " in the list is " + animal)
The animal number 0 in the list is Dog
The animal number 1 in the list is Cat
The animal number 2 in the list is Mouse

Generieren von Listen in Schleifen#

Man kann Listen mit Hilfe von for-Schleifen generieren. Die herkömmliche Art, dies zu tun, beinhaltet mehrere Codezeilen:

# we start with an empty list
numbers = []

# and add elements
for i in range(0, 5):
    numbers.append(i * 2)
    
print(numbers)
[0, 2, 4, 6, 8]

Man kann das auch kürzer schreiben. Das zugrunde liegende Konzept nennt sich Generatoren.

numbers = [i * 2 for i in range(0, 5)]

print(numbers)
[0, 2, 4, 6, 8]

Die herkömmliche Kombination mit einer if-Anweisung sieht so aus:

# we start with an empty list
numbers = []

# and add elements
for i in range(0, 5):
    # check if the number is odd
    if i % 2:
        numbers.append(i * 2)
    
print(numbers)
[2, 6]

Und die Kurzversion so:

numbers = [i * 2 for i in range(0, 5) if i % 2]

print(numbers)
[2, 6]

While-Schleifen#

Eine andere Art der Schleife ist die while-Schleife. Sie funktioniert, indem sie eine Bedingung überprüft, ähnlich der if-Anweisung. Sie unterbricht die Ausführung, sobald die Bedingung nicht mehr wahr ist:

number = 1024

while (number > 1):
    number = number / 2
    print(number)
512.0
256.0
128.0
64.0
32.0
16.0
8.0
4.0
2.0
1.0

Unterbrechen von Schleifen#

Sie können Schleifen an bestimmten Stellen in Ihrem Code mit dem Befehl break unterbrechen:

number = 1024

while (True):
    number = number / 2
    print(number)
    
    if number < 1:
        break;
512.0
256.0
128.0
64.0
32.0
16.0
8.0
4.0
2.0
1.0
0.5
for i in range(10):
    print(i)
    if i > 5:
        break
0
1
2
3
4
5
6

Überspringen von Iterationen in Schleifen#

Wenn Sie Iterationen überspringen möchten, können Sie die continue-Anweisung verwenden. Das macht oft in Kombination mit einem if Sinn:

for i in range(0, 10):
    if i >= 3 and i <= 6:
        continue
    print(i)
0
1
2
7
8
9

Übung 1#

Angenommen, Sie haben eine Liste von Dateinamen und möchten etwas damit machen, zum Beispiel sie ausgeben. Programmieren Sie eine for-Schleife, die alle Dateinamen ausgibt, die mit “tif” enden.

file_names = ['dataset1.tif', 'dataset2.tif', 'summary.csv', 'readme.md', 'blobs.tif']

Übung 2#

Angenommen, Sie haben eine Liste von Kreisradien. Erstellen Sie eine Tabelle (Dictionary) mit zwei Spalten: Radius und Fläche.

radii = [3, 15, 67, 33, 12, 8, 12, 9, 22]