Einführung in eine objektorientierte Programmiersprache – Python

Sitzung 4 – Wiederholen: while, for und Listen · Vorstellung Mini-Projekt 1

Wintersemester 2026/27 · Informatik · MBM

PH Weingarten

Übersicht

  • Organisatorisches: Rückblick, Feedback, Ablauf
  • Mini-Projekt 1: Ihre Spiele und Ihr Code
  • Input: die while-Schleife und Aufgabe 1
  • Input: for und range
  • Input: Listen
  • Üben, Reflexion und Ausblick

Rückblick: Sitzung 3

Vergleiche

==, <, >= … ergeben True oder False

if, elif, else

Der erste wahre Zweig läuft – die Reihenfolge zählt

and, or, not

Bedingungen verknüpfen: alter < 12 or alter > 65

Mini-Projekt 1

Geplant mit EVA und Ablaufplan, gebaut im Tandem, abgegeben im Git

Danke für Ihr Feedback!

Bei Tempo und Interaktivität ist die Mitte (3) „genau richtig“

Sitzung 3 in Zahlen

  • Gesamteindruck 3,8 von 5
  • Verständlichkeit 3,3 – für einige war es zu viel auf einmal
  • Tempo 3,4, Interaktivität 3,0

Deshalb heute

  • Jedes Beispiel Schritt für Schritt durchgehen
  • Nach jedem Input gleich üben
  • Zu jeder Aufgabe ein Gerüst zum Aufklappen

Ablauf heute

Die Leiste oben zeigt Ihnen die ganze Sitzung, wo wir gerade stehen

Mini-Projekt 1: Ihre Spiele

Zwei bis drei Tandems, je etwa 10 Minuten

  1. 1
    Spiel zeigenEinmal durchspielen: Was macht Ihr Programm?
  2. 2
    In den Code schauenEine Stelle, auf die Sie stolz sind – und eine, die schwer war
  3. 3
    Plan und Code vergleichenWelche Raute im Ablaufplan ist welches if?
  4. 4
    Fragen und IdeenDie anderen fragen nach und geben einen Tipp

Gemeinsam in den Code schauen

Fehler sind willkommen: An ihnen lernen alle am meisten

Darauf achten wir

  • Werden die Eingaben umgewandelt, wo nötig (int())?
  • Was passiert bei einer unerwarteten Eingabe?
  • Gibt es Code, der fast gleich mehrmals dasteht?

Für die Zuhörenden

  • Was gefällt Ihnen – was würden Sie übernehmen?
  • Notieren Sie es in Teil 1 der Reflexion 304

Dreimal derselbe Code?

So sah Variante B von Mini-Projekt 1 aus

geheim = 7

tipp = int(input("Versuch 1: "))
if tipp == geheim:
    print("Richtig!")

tipp = int(input("Versuch 2: "))
if tipp == geheim:
    print("Richtig!")

tipp = int(input("Versuch 3: "))
if tipp == geheim:
    print("Richtig!")
Versuch 1: 4
Versuch 2: 7
Richtig!
Versuch 3: 9

Das fällt auf

  • Drei fast gleiche Blöcke
  • Nach dem Treffer wird trotzdem weiter gefragt
  • Für zehn Versuche: zehn Blöcke?

Die Lösung: eine Schleife

Eine Schleife wiederholt Zeilen – so oft wie nötig.

while: solange …

while = „solange“

zahl = 3

while zahl > 0:
    print(zahl)
    zahl = zahl - 1

print("Los!")
3
2
1
Los!

So ist while aufgebaut

  • Wie bei if: Bedingung, Doppelpunkt, eingerückter Block
  • Der Block läuft immer wieder, solange die Bedingung wahr ist
  • Im Block muss sich etwas ändern – sonst endet die Schleife nie

Schritt für Schritt

Spielen Sie Schleifen auf Papier durch, bevor Sie sie ausführen

zahl = 3

while zahl > 0:
    print(zahl)
    zahl = zahl - 1

print("Los!")
Rundezahl vorherzahl > 0?Ausgabe
13True3
22True2
31True1
–0FalseSchleife endet → Los!

So lesen Sie Schleifen

Vor jeder Runde prüft Python die Bedingung neu. Ist sie falsch, geht es nach dem Block weiter.

Eingaben prüfen

So stürzt Ihr Spiel bei falschen Eingaben nicht mehr ab

antwort = input("Weiter? (ja/nein) ")

while antwort != "ja" and antwort != "nein":
    print("Bitte nur ja oder nein.")
    antwort = input("Weiter? (ja/nein) ")

print(f"Sie haben {antwort} gewählt.")
Weiter? (ja/nein) vielleicht
Bitte nur ja oder nein.
Weiter? (ja/nein) ja
Sie haben ja gewählt.

Typisches Muster

  • Einmal fragen
  • Solange die Antwort ungültig ist: Hinweis ausgeben und neu fragen
  • Nach der Schleife ist die Antwort sicher gültig

Ausprobieren

Prüfen Sie eine Zahl von 1 bis 9: while zahl < 1 or zahl > 9:

Vorsicht: Endlosschleife

Jede while-Schleife braucht etwas, das sie irgendwann beendet

zahl = 3

while zahl > 0:
    print(zahl)

print("Los!")

Was fehlt hier?

  • Die Zeile zahl = zahl - 1 fehlt
  • zahl bleibt 3, die Bedingung bleibt wahr
  • Das Programm gibt endlos 3 aus

Notbremse

Strg + C im Terminal beendet das Programm.

Los geht’s: Aufgabe 1

Erst die Testtabelle ausfüllen, dann programmieren

1a · Eingabe prüfen

  • So lange fragen, bis eine Zahl von 1 bis 9 kommt
  • Testtabelle zuerst ausfüllen
  • Gerüst zum Aufklappen

1b · Zahlenraten ohne Grenze

  • Ihr Zahlenraten mit beliebig vielen Versuchen
  • Die Versuche mitzählen
  • für Schnelle: höchstens 7 Versuche

Aufgabe: Übung 12  ·  Eintragen in der Reflexion →

Pause

Weiter um 16:15 Uhr

for: für jede Zahl …

for = „für jedes“

for i in range(5):
    print(f"Runde {i}")
Runde 0
Runde 1
Runde 2
Runde 3
Runde 4

So ist for aufgebaut

  • range(5) liefert die Zahlen 0, 1, 2, 3, 4
  • i nimmt nacheinander jede dieser Zahlen an
  • Der Block läuft genau fünfmal – kein Zähler nötig

range genau angeschaut

Der Countdown von vorhin – jetzt mit for

AufrufZahlenBedeutung
range(5)0 1 2 3 4von 0 bis vor 5
range(1, 6)1 2 3 4 5von 1 bis vor 6
range(0, 10, 2)0 2 4 6 8in Zweierschritten
range(5, 0, -1)5 4 3 2 1rückwärts

Die Grenze gehört nicht dazu

range(1, 6) endet bei 5. Für „1 bis n“ schreiben Sie range(1, n + 1).

for i in range(5, 0, -1):
    print(i)
print("Los!")
5
4
3
2
1
Los!

Beispiel: zusammenzählen

summe = 0

for zahl in range(1, 5):
    summe = summe + zahl

print(f"Summe: {summe}")
Summe: 10
Rundezahlsumme danach
110 + 1 = 1
221 + 2 = 3
333 + 3 = 6
446 + 4 = 10

Muster: Sammelvariable

Vor der Schleife summe = 0, in der Schleife dazurechnen, danach ausgeben.

while oder for?

for

  • Die Anzahl der Runden steht vorher fest
  • Einmaleins, Countdown, jedes Element einer Liste

while

  • Wiederholen, bis etwas passiert
  • Eingaben prüfen, raten bis zum Treffer, Menü bis „Ende“
Faustregel: Wissen Sie, wie oft? Dann for. Wissen Sie nur, wann Schluss ist? Dann while.

Listen: viele Werte, eine Variable

Statt wert1, wert2, wert3 … eine Liste

einkauf = ["Brot", "Milch", "Äpfel"]

print(einkauf)
print(len(einkauf))
print(einkauf[0])
['Brot', 'Milch', 'Äpfel']
3
Brot

So ist eine Liste aufgebaut

  • Eckige Klammern [ ], Werte durch Kommas getrennt
  • len(einkauf) zählt die Einträge
  • einkauf[0] holt den ersten Eintrag

Der Index beginnt bei 0

IndexWertZugriff
0"Brot"einkauf[0]
1"Milch"einkauf[1]
2"Äpfel"einkauf[2]
–1"Äpfel"einkauf[-1] (letzter)
einkauf = ["Brot", "Milch", "Äpfel"]
print(einkauf[3])
IndexError: list index out of range

Drei Einträge – Index 0 bis 2

Den Index 3 gibt es nicht. Der letzte Index ist immer len(liste) - 1.

Listen wachsen lassen: append

Die Liste merkt sich alles, was dazukommt

einkauf = []

einkauf.append("Brot")
einkauf.append("Milch")

print(einkauf)
print(f"{len(einkauf)} Einträge")
['Brot', 'Milch']
2 Einträge

So funktioniert append

  • [] ist eine leere Liste
  • einkauf.append("Brot") hängt einen Eintrag hinten an
  • Mit einer Schleife können Sie beliebig viele Eingaben sammeln

for durch eine Liste

for funktioniert mit range – und mit jeder Liste

noten = [2, 1, 3, 2]
summe = 0

for note in noten:
    print(f"Note: {note}")
    summe = summe + note

print(f"Durchschnitt: {summe / len(noten)}")
Note: 2
Note: 1
Note: 3
Note: 2
Durchschnitt: 2.0

Jeder Eintrag einmal

  • for note in noten: – note ist nacheinander 2, 1, 3, 2
  • Kein Index nötig
  • Hier treffen sich die beiden Themen von heute: Schleife und Liste

Typische Fehler

FehlerMeldungLösung
while x > 0 ohne DoppelpunktSyntaxError: expected ':'Doppelpunkt ergänzen
Zähler wird nie geändertkeine – das Programm hört nicht aufStrg+C, dann z. B. zahl = zahl - 1
liste[3] bei drei EinträgenIndexError: list index out of rangeIndex ab 0 zählen
for i in range(1, 10) für 1 bis 10keine – die 10 fehltrange(1, 11)
print(einkauf(0))TypeError: 'list' object is not callableeckige Klammern: einkauf[0]

Zwei dieser Fehler meldet Python gar nicht. Dagegen hilft nur Testen.

Los geht’s: Aufgaben 2 und 3

Wer fertig ist, hilft dem Nachbarn – erklären festigt am meisten

2 · for und range

  • 2a Einmaleins einer Zahl
  • 2b Summe von 1 bis n
  • für Schnelle: Sternchen-Treppe

3 · Listen

  • 3a Einkaufsliste mit append
  • 3b Noten: Durchschnitt und beste Note
  • für Schnelle: Noten zählen

Aufgaben: Übung 13, 14  ·  Eintragen in der Reflexion →

Reflexion 304

Der Entwurf bleibt in Ihrem Browser gespeichert

Festhalten

  • Was Sie aus den Vorstellungen mitnehmen
  • Ihre Tabellen und Programme aus den Aufgaben 1–3
  • while oder for: wann nehmen Sie was?

Zum Schluss HTML kopieren und in Mahara einfügen.

Fragen?


Reflexion und Feedback

Reflexion zu Sitzung 4

Abschnitte ergänzen, Feedback geben → HTML kopieren → in Mahara einfügen

QR-Code Reflexion Sitzung 4

Ausblick: Sitzung 5

Funktionen – und Mini-Projekt 2: ein größeres Spiel mit Schleifen, Listen und Funktionen.

To Do’s:

  • Aufgaben 1–3 abschließen, mit den Lösungen vergleichen
  • Mini-Projekt 1 in Ihr Mahara-Portfolio aufnehmen
  • Reflexion 304 in Mahara einfügen

Icons: Lucide (ISC-Lizenz) · Abbildungen: eigene Darstellung