Bearbeite alle Aufgaben selbstständig. Nutze kein Internet oder Hilfsmittel,
um deinen Lernstand ehrlich einschätzen zu können.
Klicke nach jedem Teil auf „Überprüfen" – am Ende kannst du alle Lösungen einsehen.
Teil 1
Multiple Choice – Kreuze die richtige(n) Antwort(en) an
– / 7 Pkt.
A1. Was gibt folgender Code aus?
x = 1
while x < 4:
print x
x = x + 1
A2. Welche Aussagen zur while-Schleife sind korrekt? (mehrere möglich)
A3. Welche Bedingung(en) erzeugen eine Endlosschleife? (mehrere möglich)
Teil 2
Lückentext – Ergänze die Fachbegriffe
– / 8 Pkt.
Bedingung
Einrückung (Indentation)
Endlosschleife
Iteration
Kontrollstruktur
Schleifenkörper
while
Struktogramm
Die while-Schleife ist eine
zur Wiederholung von Anweisungen.
Der Beginn der Schleife wird mit dem Schlüsselwort
eingeleitet,
gefolgt von der
, die ausgewertet wird.
Ist diese wahr (True), werden die Anweisungen im
ausgeführt.
Danach wird die Bedingung erneut geprüft.
Die Anweisungen im Innern erfordern eine
(Einzug nach rechts).
Jeden einzelnen Durchlauf der Schleife nennt man
.
Falls die Bedingung nie False wird, entsteht eine
.
Den Ablauf kann man grafisch in einem
darstellen.
Teil 3
Verständnisfragen
Selbst bewerten
B1. Erkläre mit eigenen Worten: Was ist der Unterschied zwischen einer
while-Schleife und einer Schleife mit fester Durchlaufanzahl?
Gib je ein kurzes Alltagsbeispiel.
B2. Warum ist es wichtig, dass sich im Schleifenkörper etwas verändert,
das die Bedingung beeinflusst? Was passiert sonst?
✔ Musterlösung B1:
Eine while-Schleife wiederholt Anweisungen, solange eine Bedingung wahr ist – die Anzahl der Durchläufe ist vorher nicht festgelegt (z.B. bis der Nutzer die richtige Zahl rät).
Eine Schleife mit fester Anzahl läuft immer genau n-mal.
Alltagsbeispiel while: „Solange das Essen noch nicht gar ist, weiter kochen." (unbekannte Wartezeit)
Alltagsbeispiel fest: „3 Mal umrühren."
✔ Musterlösung B2:
Wenn sich im Schleifenkörper nichts verändert, das die Bedingung beeinflusst, bleibt die Bedingung dauerhaft True. Die Schleife läuft dann nie zu Ende – es entsteht eine Endlosschleife. Das Programm „hängt" und reagiert nicht mehr.
Eine while-Schleife wiederholt Anweisungen, solange eine Bedingung wahr ist – die Anzahl der Durchläufe ist vorher nicht festgelegt (z.B. bis der Nutzer die richtige Zahl rät).
Eine Schleife mit fester Anzahl läuft immer genau n-mal.
Alltagsbeispiel while: „Solange das Essen noch nicht gar ist, weiter kochen." (unbekannte Wartezeit)
Alltagsbeispiel fest: „3 Mal umrühren."
✔ Musterlösung B2:
Wenn sich im Schleifenkörper nichts verändert, das die Bedingung beeinflusst, bleibt die Bedingung dauerhaft True. Die Schleife läuft dann nie zu Ende – es entsteht eine Endlosschleife. Das Programm „hängt" und reagiert nicht mehr.
Teil 4
Code-Analyse – Zahlenraten
Selbst bewerten
from random import randint
geheimzahl = randint(1, 100)
geraten = 0
versuche = 0
while geraten != geheimzahl: # Zeile 7
geraten = int(inputInt("Rate eine Zahl (1-100): "))
versuche = versuche + 1
if geraten < geheimzahl: print "Zu klein!"
elif geraten > geheimzahl: print "Zu gross!"
print "Richtig! Du hast", versuche, "Versuche gebraucht."
C1. Welchen Wert hat
versuche, wenn der Spieler beim ersten Versuch richtig rät?C2. Was würde passieren, wenn in Zeile 7 statt
geraten != geheimzahl die Bedingung geraten == geheimzahl stehen würde? Begründe kurz.C3. Markiere oder benenne die Zeile(n), in der die Bedingung irgendwann False werden kann.
✔ C1:
✔ C2: Die Schleife würde nur betreten, wenn
✔ C3: Zeile
versuche = 1 – da versuche erst nach der Eingabe um 1 erhöht wird.✔ C2: Die Schleife würde nur betreten, wenn
geraten bereits gleich geheimzahl ist.
Da geraten zu Beginn 0 ist und die Geheimzahl zwischen 1 und 100 liegt, ist die Bedingung beim ersten Prüfen False –
die Schleife wird gar nicht ausgeführt. Das Programm gibt sofort „Richtig!" aus, ohne dass der Nutzer geraten hat.✔ C3: Zeile
geraten = int(inputInt(...)) – hier erhält geraten einen neuen Wert.
Wenn dieser gleich geheimzahl ist, wird die Bedingung beim nächsten Prüfen False und die Schleife endet.
Teil 5
Fehlersuche (Debugging) – 3 Fehler finden
– / 3 Pkt.
Der folgende Code soll von 1 bis 5 zählen und die Summe ausgeben. Er enthält drei Fehler. Finde und beschreibe sie!
summe = 0
x = 1
while x <= 5 ← Zeile 3
summe = summe + x ← Zeile 4
x = x + 1 ← Zeile 5 (eingerückt)
print "Summe:", summe
Fehler 1:
Fehler 2:
Fehler 3:
✔ Fehler 1: Zeile 3 – fehlender Doppelpunkt am Ende der while-Zeile:
✔ Fehler 2: Zeile 4 –
✔ Fehler 3: Zeile 4 und 5 haben unterschiedliche Einrückung – beide müssen gleich weit eingerückt sein.
Korrigierter Code:
while x <= 5:✔ Fehler 2: Zeile 4 –
summe = summe + x ist nicht eingerückt, gehört aber zum Schleifenkörper.✔ Fehler 3: Zeile 4 und 5 haben unterschiedliche Einrückung – beide müssen gleich weit eingerückt sein.
Korrigierter Code:
summe = 0
x = 1
while x <= 5:
summe = summe + x
x = x + 1
print "Summe:", summe # Ausgabe: Summe: 15
Teil 6
Code-Ergänzung – Zahlenraten erweitern
Selbst bewerten
Ergänze den Code aus Teil 4 so, dass:
1. Nach jedem Versuch Hinweise ausgegeben werden (✓ bereits vorhanden)
2. ★ Maximal 7 Versuche erlaubt sind – danach Niederlagen-Meldung
3. ★★ Nach jedem Hinweis wird ausgegeben, wie viele Versuche noch übrig sind
✔ Musterlösung (★ + ★★):
Hinweis: Die Abbruchbedingung wird mit
from random import randint
geheimzahl = randint(1, 100)
geraten = 0
versuche = 0
max_versuche = 7
while geraten != geheimzahl and versuche < max_versuche:
geraten = int(inputInt("Rate eine Zahl (1-100): "))
versuche = versuche + 1
if geraten < geheimzahl: print "Zu klein!"
elif geraten > geheimzahl: print "Zu gross!"
# ★★ verbleibende Versuche anzeigen
if geraten != geheimzahl:
rest = max_versuche - versuche
print "Noch", rest, "Versuch(e) uebrig."
if geraten == geheimzahl:
print "Richtig! Du hast", versuche, "Versuche gebraucht."
else:
print "Leider verloren! Die Zahl war", geheimzahl
Hinweis: Die Abbruchbedingung wird mit
and um die Versuchsbegrenzung erweitert.
Nach der Schleife prüft ein if/else, ob gewonnen oder verloren wurde.
Teil II – for-Schleife
Teil 7
Multiple Choice – for-Schleife
– / 5 Pkt.
A4. Was gibt folgender Code aus?
for i in range(5):
print i
A5. Welcher
range()-Aufruf erzeugt genau die Zahlen 1, 3, 5, 7, 9?A6. Welche Aussagen zur for-Schleife sind korrekt? (mehrere möglich)
Teil 8
Lückentext – for-Schleife Fachbegriffe
– / 7 Pkt.
for
in
Laufvariable
Zahlenbereich
Zählschleife
range()
Iteration
Die for-Schleife ist eine
, die für jeden
Wert eines
einmal ausgeführt wird.
Das Schlüsselwort
leitet sie ein,
gefolgt von der
,
dem Schlüsselwort
und der Sequenz.
Mit der Funktion
lässt sich ein
Zahlenbereich direkt angeben.
Jeden einzelnen Durchlauf der Schleife nennt man
.
Teil 9
Code-Analyse – for-Schleife
Selbst bewerten
from random import randint
summe = 0
treffer = 0
versuche = 10
for i in range(versuche): # Zeile 7
zahl = randint(1, 6) # Würfeln
summe = summe + zahl
if zahl == 6:
treffer = treffer + 1
print "Summe:", summe
print "Sechsen:", treffer
D1. Wie oft wird der Schleifenrumpf (Zeilen 8–11) insgesamt ausgeführt?
D2. Welche Werte nimmt die Laufvariable
i während der Schleife an?D3. Was müsste man ändern, damit das Programm 100 statt 10 Würfe simuliert – und warum ist dafür keine while-Schleife nötig?
D4. Schreibe den äquivalenten Code mit einer while-Schleife (gleiche Aufgabe, anderes Konstrukt).
✔ D1: 10-mal –
✔ D2: i nimmt die Werte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 an (nicht 10 – der Endwert ist ausgeschlossen).
✔ D3:
✔ D4 – Äquivalenter while-Code:
range(versuche) = range(10) → 10 Durchläufe.✔ D2: i nimmt die Werte 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 an (nicht 10 – der Endwert ist ausgeschlossen).
✔ D3:
versuche = 100 ändern (oder direkt range(100) schreiben). Eine while-Schleife ist
nicht nötig, weil die Anzahl der Durchläufe vorher bekannt ist – genau das ist der typische Anwendungsfall für for.✔ D4 – Äquivalenter while-Code:
summe = 0
treffer = 0
i = 0 # Laufvariable selbst init.!
while i < versuche:
zahl = randint(1, 6)
summe = summe + zahl
if zahl == 6:
treffer = treffer + 1
i = i + 1 # nicht vergessen!
print "Summe:", summe
print "Sechsen:", treffer
Teil 10
Code schreiben – for-Schleife anwenden
Selbst bewerten
Schreibe Python-Code (TigerJython / Python 2.7) für folgende Aufgaben:
E1. ★ Gib alle geraden Zahlen von 2 bis 20 aus (mit
range()).E2. ★ Berechne und gib die Summe aller Zahlen von 1 bis 100 aus.
E3. ★★ Erstelle eine Liste mit drei Namen deiner Wahl und gib jeden Namen
mit einer Begrüßung aus, z.B.
Hallo, Anna!
✔ E1 – Gerade Zahlen:
for i in range(2, 21, 2):
print i # 2, 4, 6, … 20
✔ E2 – Summe 1–100:
summe = 0
for i in range(1, 101):
summe = summe + i
print "Summe:", summe # → 5050
✔ E3 – Liste mit Begrüßung:
namen = ["Anna", "Ben", "Clara"]
for name in namen:
print "Hallo, " + name + "!"
Reflexion
Selbstreflexion & Gesamtauswertung
✔ Welche Aufgabe war am schwierigsten? Was möchtest du noch üben?
Auswertung
–
von – Pkt.
Teile 3, 4, 6, 9 und 10 werden selbst bewertet – zählen hier nicht automatisch.
Bewerte sie ehrlich nach den Musterlösungen.
Bewerte sie ehrlich nach den Musterlösungen.