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.

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:

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:

#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:

for x in range(4, 9):
  print(x)

Analysiere diesen Code und beantworte anschließend die Fragen:

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.

#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.

[expand title=”Tipps zu den Fragen”]

Zu der Zählfrage:

num = 0 #Dieser Wert soll gleich in der doppelten Schleife die Nr. des Wertes mitzählen
for i in range(3):
    for j in range(4):
        sum = i+j
        num += 1 #Zähler wird mit jedem Gesamtdurchlauf um 1 erhöht
        print("Nr. ",num,": ", i," + ",j, " = ", sum)

[/expand]


Ü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:

#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