Appearance
Kapitel 7: Schleifen (for/while)
🎯 Lernziele
In diesem Kapitel lernst du:
- while-Schleifen (Bedingungsschleife)
- for-Schleifen (Iterationsschleife)
- Schleifensteuerung (break, continue)
- Verschachtelte Schleifen
- Häufige Fehler vermeiden
7.1 while-Schleife
🔁 Grundlegende while-Syntax
python
while bedingung:
# Codeblock (wird wiederholt, solange Bedingung wahr ist)
anweisung💡 Einfaches Beispiel
python
# Zähler von 1 bis 5
zähler = 1
while zähler <= 5:
print(zähler)
zähler += 1 # Wichtig: Zähler erhöhen!
# Ausgabe: 1 2 3 4 5⚠️ Wichtig: Vermeide Endlosschleifen!
python
# Endlosschleife (Zähler wird nicht erhöht!)
zähler = 1
while zähler <= 5:
print(zähler)
# zähler += 1 # Vergessen → Endlosschleife!
# Abbruch: Strg + C (Terminal) oder Stop-Button (IDE)🎯 Praxisbeispiel: Benutzereingabe mit Validierung
python
# Wiederhole, bis gültige Eingabe
while True:
alter = input("Wie alt bist du? ")
if alter.isdigit() and int(alter) > 0:
alter = int(alter)
break # Gültige Eingabe → Schleife beenden
else:
print("Bitte gib eine gültige Zahl ein!")
print(f"Dein Alter: {alter}")7.2 for-Schleife
🔄 Grundlegende for-Syntax
python
for variable in iterierbares_objekt:
# Codeblock (wird für jedes Element ausgeführt)
anweisung💡 Einfaches Beispiel
python
# Durch Liste iterieren
früchte = ["Apfel", "Banane", "Orange"]
for frucht in früchte:
print(frucht)
# Ausgabe:
# Apfel
# Banane
# Orange🔢 range()-Funktion (Sehr wichtig!)
python
# range(end) - von 0 bis end-1
for i in range(5):
print(i) # 0 1 2 3 4
# range(start, end) - von start bis end-1
for i in range(2, 6):
print(i) # 2 3 4 5
# range(start, end, step) - mit Schrittweite
for i in range(0, 10, 2):
print(i) # 0 2 4 6 8🎯 Praxisbeispiel: Zahlen raten
python
import random
geheimzahl = random.randint(1, 10)
versuche = 0
for i in range(3): # 3 Versuche
versuche += 1
tipp = int(input(f"Versuch {versuche}/3 - Rate die Zahl (1-10): "))
if tipp == geheimzahl:
print("Richtig geraten!")
break
elif tipp < geheimzahl:
print("Zu niedrig!")
else:
print("Zu hoch!")
if versuche == 3 and tipp != geheimzahl:
print(f"Game Over! Die Zahl war {geheimzahl}")7.3 Schleifensteuerung (break, continue)
🛑 break - Schleife sofort beenden
python
# Suche nach einer Zahl
zahlen = [1, 5, 12, 8, 3]
for zahl in zahlen:
if zahl == 12:
print("Zahl 12 gefunden!")
break # Schleife sofort beenden
print(f"Überprüfe {zahl}")
# Ausgabe:
# Überprüfe 1
# Überprüfe 5
# Zahl 12 gefunden!⏭️ continue - Aktuelle Iteration überspringen
python
# Nur gerade Zahlen ausgeben
for i in range(1, 6):
if i % 2 != 0: # Wenn ungerade
continue # Rest überspringen
print(i) # Nur gerade Zahlen
# Ausgabe: 2 4🎯 Praxisbeispiel: Passwort-Generator mit Bedingungen
python
passwörter = ["123", "pass", "passwort123", "123456"]
for pw in passwörter:
if len(pw) < 8:
print(f"'{pw}' zu kurz - überspringe")
continue
if pw.isdigit():
print(f"'{pw}' nur Zahlen - überspringe")
continue
print(f"'{pw}' ist ein starkes Passwort!")
break
# Ausgabe:
# '123' zu kurz - überspringe
# 'pass' zu kurz - überspringe
# 'passwort123' ist ein starkes Passwort!7.4 Verschachtelte Schleifen
🔲 Grundlegende Syntax
python
for i in äußere_liste:
for j in innere_liste:
# Codeblock💡 Klassisches Beispiel: Kleines Einmaleins
python
# Kleines Einmaleins (1-10)
for i in range(1, 11):
for j in range(1, 11):
ergebnis = i * j
print(f"{i} x {j} = {ergebnis}", end="\t")
print() # Neue Zeile nach jeder Zeile🎯 Praxisbeispiel: Muster drucken
python
# Sternchen-Dreieck
zeilen = 5
for i in range(1, zeilen + 1):
for j in range(i):
print("*", end="")
print()
# Ausgabe:
# *
# **
# ***
# ****
# *****7.5 for-else und while-else (Besonderheit in Python!)
🤔 else nach Schleife?
python
# else wird ausgeführt, wenn Schleife NICHT durch break beendet wurde
for i in range(5):
if i == 10:
break
else:
print("Schleife normal beendet (kein break)")
# Ausgabe: Schleife normal beendet (kein break)🎯 Praxisbeispiel: Primzahlprüfung
python
def ist_primzahl(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
# Test
zahl = 17
if ist_primzahl(zahl):
print(f"{zahl} ist eine Primzahl")
else:
print(f"{zahl} ist keine Primzahl")⚠️ Häufige Fehler
❌ Fehler 1: Endlosschleife
python
# Falsch (Zähler wird nicht erhöht)
zähler = 0
while zähler < 5:
print(zähler)
# zähler += 1 # Vergessen!
# Richtig
zähler = 0
while zähler < 5:
print(zähler)
zähler += 1 # Zähler erhöhen!❌ Fehler 2: Einrückungsfehler
python
# Falsch
for i in range(5):
print(i) # IndentationError!
# Richtig
for i in range(5):
print(i) # 4 Leerzeichen einrücken❌ Fehler 3: break/continue verwechseln
python
# break - Schleife beenden
# continue - Aktuelle Iteration überspringen
for i in range(5):
if i == 2:
break # Schleife beenden → 0 1
print(i)
for i in range(5):
if i == 2:
continue # Nur 2 überspringen → 0 1 3 4
print(i)📝 Zusammenfassung
In diesem Kapitel hast du gelernt:
- ✅ while-Schleifen zu verwenden (Bedingungsschleife)
- ✅ for-Schleifen zu verwenden (Iterationsschleife)
- ✅ Die range()-Funktion zu nutzen
- ✅ break und continue zu verwenden
- ✅ Verschachtelte Schleifen zu erstellen
- ✅ Endlosschleifen zu vermeiden
🎯 Übung
- Schreibe ein Programm, das die Zahlen von 1 bis 100 summiert
- Erstelle ein Programm, das alle Primzahlen zwischen 1 und 100 ausgibt
- Baue einen einfachen Zahlenratespiel mit while-Schleife
- Drucke ein Rechteck aus Sternchen mit verschachtelten Schleifen
⏭️ Nächstes Kapitel
In Kapitel 8 lernen wir String-Operationen - Textverarbeitung in Python!
