Zum Inhalt springen

for-Schleifen

NOTIZEN:

Grundgerüst

Mit dem folgenden Code wird eine Schleife durchlaufen. Der Vorgang, der in dem Anweisungsblock steht wird so oft wie die Zahl in der Funktion range() wiederholt.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
for i in range(5):
print('Dieser Text wiederholt sich 5 mal!')
for i in range(5): print('Dieser Text wiederholt sich 5 mal!')
for i in range(5):
    print('Dieser Text wiederholt sich 5 mal!')

So kannst du den Code auch etwas flexibler gestalten, in dem du den Wert der Variablen n festlegst und übergibst:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
n = 10
for i in range(n):
print('Dieser Text wiederholt sich',n,'mal!')
n = 10 for i in range(n): print('Dieser Text wiederholt sich',n,'mal!')
n = 10

for i in range(n):
    print('Dieser Text wiederholt sich',n,'mal!')

In Python kannst du for-Schleifen auch durch Listen oder Strings durchlaufen lassen:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#Quelle: https://www.w3schools.com/python/python_for_loops.asp
#Schleife durchläuft Elemente einer Liste
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
#Schleife durchläuft Character eines Strings
for x in "banana":
print(x)
#Quelle: https://www.w3schools.com/python/python_for_loops.asp #Schleife durchläuft Elemente einer Liste fruits = ["apple", "banana", "cherry"] for x in fruits: print(x) #Schleife durchläuft Character eines Strings for x in "banana": print(x)
#Quelle: https://www.w3schools.com/python/python_for_loops.asp

#Schleife durchläuft Elemente einer Liste
fruits = ["apple", "banana", "cherry"]
for x in fruits:
  print(x)

#Schleife durchläuft Character eines Strings
for x in "banana":
  print(x)

Übung 1

  1. Probiere die Beispielcodes oben aus. Erhältst du die erwartete Ausgabe? Nein? Ändere Paramater, um den Code besser zu verstehen.
  2. Schreibe einen Code, der n mal (der Wert von n soll im Code festgelegt werden) den folgenden Text ausgibt:
    “Du sollst nicht durch 0 teilen!” (a)

Übung 2

Analysiere diesen Code und beantworte anschließend die Fragen:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
for x in range(4, 9):
print(x)
for x in range(4, 9): print(x)
for x in range(4, 9):
  print(x)

Analysiere diesen Code und beantworte anschließend die Fragen:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
for x in range(12, 40, 3):
print(x)
for x in range(12, 40, 3): print(x)
for x in range(12, 40, 3):
  print(x)

Übung 3

  1. Erstelle einen Code zur Berechnung der Summe aller Zahlen von 0 bis 100 (“kleiner Gauß”). Nutze dafür eine for-Schleife. (a)
  2. Erstelle einen Code zur Berechnung der Fakultät von 100. Nutze dafür eine for-Schleife. (a)

Übung 4

Analysiere die folgenden Code-Blöcke und beantworte dann die Fragen.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#Beispiel 1 mit Zahlen
for i in range(5):
for j in range(4):
sum = i+j
print(i," + ",j, " = ", sum)
#Beispiel 2 mit zusammengesetzten Worten aus Listen
adj = ["schlaue", "gelbe", "kleine"]
namen = ["Ente", "Layla", "Banane"]
for x in adj:
for y in namen:
print(x, y)
#Beispiel 1 mit Zahlen for i in range(5): for j in range(4): sum = i+j print(i," + ",j, " = ", sum) #Beispiel 2 mit zusammengesetzten Worten aus Listen adj = ["schlaue", "gelbe", "kleine"] namen = ["Ente", "Layla", "Banane"] for x in adj: for y in namen: print(x, y)
#Beispiel 1 mit Zahlen
for i in range(5):
    for j in range(4):
        sum = i+j
        print(i," + ",j, " = ", sum)

#Beispiel 2 mit zusammengesetzten Worten aus Listen
adj = ["schlaue", "gelbe", "kleine"]
namen = ["Ente", "Layla", "Banane"]

for x in adj:
  for y in namen:
    print(x, y)

  1. Analysiere. Analysiere bedeutet, dass du dir den Code Zeile für Zeile ansiehst, dahinter schreibst, was passiert und ein mal erklärst, was insgesamt passiert. Dazu musst du den Code natürlich kopieren und in eine eigene Datei schreiben. (a)
  2. Beantworte die Fragen unten. Wenn du unsicher bist, schau dir Tipps darunter an.

Tipps zu den Fragen

Übung 5*

Mit for-Loops geht so einiges mehr! Hier ein kleiner Einblick für dich, falls du so schnell so weit gekommen bist.

Wir schreiben simple Geheimbotschaften, indem wir jeden x-ten Buchstaben auslassen.

Schreibe ein Skript, welches ein Wort in seine Buchstaben aufteilt und in eine Liste übergibt. Gib anschließend jeden zweiten (dritten, vierten) Buchstaben aus. (Du darfst den Text auch ohne Leerzeichen schreiben, das macht das Entschlüsseln einfacher.)

Tipp:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#Tipp Teil 1
text = "Das ist mein Text." #ein Text
liste = list(text) #Text wird als Liste gespeichert. Dabei wird jeder Character, auch Leerzeichen als Listenelement gespeichert
print(liste[0]) #gibt also den 1. Character des Textes text aus
print(liste[6]) #gibt also den 7. Character des Textes text aus
#Tipp Teil 2 # gibt den Text als Liste von Buchstaben aus
for buchstabe in liste: # hiermit werden alle Buchstaben ausgegeben, wie kann man mit if-Abfragen erreichn, dass nur bei jedem 2 zweiten Buchstaben etwas ausgegeben wird?
print(buchstabe)
# Ein anderer Ansatz
for index, x in enumerate(text):
if index % 2 == 0:
print(x)
else:
print("-")
#Tipp Teil 1 text = "Das ist mein Text." #ein Text liste = list(text) #Text wird als Liste gespeichert. Dabei wird jeder Character, auch Leerzeichen als Listenelement gespeichert print(liste[0]) #gibt also den 1. Character des Textes text aus print(liste[6]) #gibt also den 7. Character des Textes text aus #Tipp Teil 2 # gibt den Text als Liste von Buchstaben aus for buchstabe in liste: # hiermit werden alle Buchstaben ausgegeben, wie kann man mit if-Abfragen erreichn, dass nur bei jedem 2 zweiten Buchstaben etwas ausgegeben wird? print(buchstabe) # Ein anderer Ansatz for index, x in enumerate(text): if index % 2 == 0: print(x) else: print("-")
#Tipp Teil 1
text = "Das ist mein Text." #ein Text
liste = list(text) #Text wird als Liste gespeichert. Dabei wird jeder Character, auch Leerzeichen als Listenelement gespeichert

print(liste[0]) #gibt also den 1. Character des Textes text aus
print(liste[6]) #gibt also den 7. Character des Textes text aus

#Tipp Teil 2 # gibt den Text als Liste von Buchstaben aus
for buchstabe in liste: # hiermit werden alle Buchstaben ausgegeben, wie kann man mit if-Abfragen erreichn, dass nur bei jedem 2 zweiten Buchstaben etwas ausgegeben wird?
    print(buchstabe)


# Ein anderer Ansatz
for index, x in enumerate(text):
    if index % 2 == 0:
        print(x)
    else:
        print("-")

Erstelle einen Geheimtext oder lasse ihn durch einen Nutzer eingeben. Überlege dir selbst eine Rechenregeln für den Index, um die Geheimbotschaft auszugeben. Viel Spaß!


Ein Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert