Einführung in eine objektorientierte Programmiersprache – Python

Sitzung 3 – Programme entscheiden: Vergleiche, if, elif, else · Mini-Projekt 1

Wintersemester 2026/27 · Informatik · MBM

PH Weingarten

Übersicht

  • Organisatorisches: Rückblick, Feedback, Ablauf
  • KI-TandemLab: Wahr oder falsch?
  • Input: Programme entscheiden – Vergleiche, if, elif, else
  • Üben und Reflexion Teil 1
  • Mini-Projekte: Softwareplanung, Tandem und Git
  • Mini-Projekt 1 im Tandem und Reflexion Teil 2

Rückblick: Sitzung 2

TandemLab

Zahlen und Text erklärt – und gemeinsam den ersten TypeError repariert

f-Strings

f"Ich bin {alter} Jahre alt." setzt Werte direkt in Text ein

Datentypen

int, float, str – und type() verrät, was vorliegt

Eingaben

input() liefert immer Text – int() macht daraus eine Zahl

Danke für Ihr Feedback!

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

Sitzung 2 in Zahlen

  • Verständlichkeit 4,4 und Gesamteindruck 4,6 von 5
  • Tempo 3,3: fast genau richtig
  • Interaktivität von 2,8 auf 3,6 gestiegen

Deshalb heute

  • Wieder mit TandemLab
  • Mehr Zeit zum Programmieren – im zweiten Block ein eigenes Projekt

Ablauf heute

Diese Liste begleitet Sie durch die Sitzung: Hier sehen Sie immer, wo wir gerade stehen

Neu: Mini-Projekte statt Hausaufgaben

Vier Mini-Projekte im Semester

  • Kleine, eigene Programme zu dem, was wir gerade gelernt haben
  • Am besten im Tandem: zu zweit planen, bauen und erklären
  • Abgabe im Git, Vorstellung in der Sitzung, Einbindung in Ihr Mahara-Portfolio

Heute geht es los

Im zweiten Block planen Sie Mini-Projekt 1 und legen Ihr erstes Repository an. Abgabe: Mi, 04.11., 12:00 Uhr.

Planen→Bauen→Git→Vorstellen→Mahara

Jetzt beitreten

Passwort

oop

Diese Sitzung wählen

Vor Ort: OOP26_3 — Wahr oder falsch? Programme entscheiden
Per Zoom: OOP26_3_Zoom — Wahr oder falsch? Programme entscheiden

Runde: Wahr oder falsch?

Erst vorhersagen, dann ausführen – und dem Gegenüber erklären

Gruppe A · Vergleiche

==, !=, <, > – was ergibt print(7 > 3)?

Gruppe B · if und else

Welche Zeilen laufen – und welche nicht?

Gemeinsame Aufgabe: das Kinoprogramm

Ein Programm soll prüfen, ob jemand in einen Film ab 16 darf – es stürzt aber ab. Finden Sie zusammen den Fehler, reparieren Sie ihn und bauen Sie danach Ticketpreise ein.

Arbeitsphase 10 minTandemphase 10 min

Programme, die entscheiden

Ein Programm wird erst nützlich, wenn es auf Eingaben reagiert

Bisher

Jede Zeile läuft – immer, von oben nach unten.

Ab heute

Manche Zeilen laufen nur, wenn eine Bedingung wahr ist.

Wie im Alltag

Wenn es regnet, nehme ich den Schirm. Sonst die Sonnenbrille.

Vergleiche ergeben True oder False

ZeichenBedeutungBeispiel
==gleich5 == 5 → True
!=ungleich5 != 3 → True
<kleiner3 < 5 → True
>größer3 > 5 → False
<=kleiner oder gleich5 <= 5 → True
>=größer oder gleich4 >= 5 → False

Neuer Datentyp: bool

Ein Vergleich ist eine Frage mit genau zwei Antworten: True oder False. Groß geschrieben!

print(7 > 3)
print(type(7 > 3))
True
<class 'bool'>

Vorsicht: = oder ==

Der häufigste Fehler am Anfang

alter = 20          # = speichert einen Wert
print(alter == 20)  # == vergleicht
print(alter == 21)
True
False

Ein Zeichen, zwei Bedeutungen

  • = speichert: „alter bekommt 20“
  • == fragt: „Ist alter gleich 20?“
  • Wer im if = schreibt, bekommt einen SyntaxError

if: nur wenn …

Die Einrückung zeigt, welche Zeilen zur Bedingung gehören

temperatur = 25

if temperatur > 20:
    print("Heute reicht ein T-Shirt.")

print("Schönen Tag!")
Heute reicht ein T-Shirt.
Schönen Tag!

So ist if aufgebaut

  • Nach der Bedingung kommt ein Doppelpunkt :
  • Was dazugehört, ist eingerückt (4 Leerzeichen)
  • Die Zeile ohne Einrückung läuft immer

Ausprobieren

Setzen Sie temperatur = 15. Welche Zeile bleibt übrig?

if und else: entweder … oder

zahl = int(input("Zahl: "))

if zahl % 2 == 0:
    print(f"{zahl} ist gerade.")
else:
    print(f"{zahl} ist ungerade.")
Zahl: 7
7 ist ungerade.

else = sonst

  • else: hat keine Bedingung
  • Genau einer der beiden Blöcke läuft – nie beide
  • else steht auf derselben Höhe wie if

Neu: % (Modulo)

7 % 2 ist der Rest beim Teilen: 1. Gerade Zahlen haben den Rest 0.

elif: mehrere Fälle

elif heißt „else if“: sonst, wenn …

alter = int(input("Alter: "))

if alter < 12:
    preis = 6
elif alter < 18:
    preis = 8
else:
    preis = 11

print(f"Ihr Ticket kostet {preis} Euro.")
Alter: 15
Ihr Ticket kostet 8 Euro.

So prüft Python

  • Von oben nach unten
  • Der erste wahre Zweig läuft, alle anderen werden übersprungen
  • else fängt alles auf, was übrig bleibt

Reihenfolge zählt

Stehen alter < 18 und alter < 12 vertauscht, kostet jedes Kinderticket 8 Euro. Warum?

Bedingungen verknüpfen: and, or, not

So werden aus einfachen Fragen genaue Regeln

Wortwahr, wenn …Beispiel
andbeide Bedingungen wahr sindalter >= 18 and hat_ticket
ormindestens eine wahr istalter < 12 or alter > 65
notdie Bedingung falsch istnot hat_ticket
alter = 25
hat_ticket = True

if alter >= 18 and hat_ticket:
    print("Willkommen!")

if alter < 12 or alter > 65:
    print("Ermäßigung")
else:
    print("Normalpreis")
Willkommen!
Normalpreis

Vergleichen mit Eingaben

Erinnern Sie sich: input() liefert immer Text

print("5" == 5)
print(int("5") == 5)
print("10" < "9")
print(10 < 9)
False
True
True
False

Text ist keine Zahl

  • Texte werden Zeichen für Zeichen verglichen: „1“ kommt vor „9“
  • Darum Eingaben vor dem Vergleich umwandeln: int(input(…))
  • Kommazahlen mit float(): int("3.5") gibt einen ValueError

Typische Fehler

FehlerMeldungLösung
if x > 3SyntaxError: expected ':'Doppelpunkt ergänzen
Block nicht eingerücktIndentationError: expected an indented block4 Leerzeichen einrücken
if x = 3:SyntaxError: … Maybe you meant '=='== zum Vergleichen
if eingabe > 18:TypeError: '>' not supported between instances of 'str' and 'int'int(input(…))
print(true)NameError: name 'true' is not defined. Did you mean: 'True'?True / False groß

Python hilft mit: Lesen Sie die letzte Zeile der Meldung und die Zeilennummer.

Wo stehen wir?

Jetzt sind Sie dran: Aufgaben 1–3 in der Reflexion

Los geht’s: Aufgaben 1–3

Erst selbst programmieren, dann mit den Lösungen vergleichen

1 · Vergleiche

Ergebnisse vorhersagen, prüfen und erklären

2 · if und else

Gerade oder ungerade, bestanden oder nicht

3 · elif und and/or

Notenrechner und Eintrittspreise

In der Reflexion bearbeiten →  ·  Lösungen: Aufgabe 1, 2, 3

Reflexion Teil 1

Der Entwurf bleibt in Ihrem Browser gespeichert

Kurz festhalten

  • Ihre Programme aus den Aufgaben 1–3
  • Was sitzt schon sicher?
  • Was ist noch unklar – und was möchten Sie fragen?

Teil 2 folgt am Ende der Sitzung. Erst dann HTML kopieren und in Mahara einfügen.

Wo stehen wir?

Gleich: 30 Minuten Pause

Willkommen zurück

Zweiter Block: Ihr erstes Mini-Projekt

Vier Mini-Projekte

Die Themen 2 bis 4 legen wir rechtzeitig genauer fest

Nr.ThemaWann
1Ihr Entscheidungsspiel: Abenteuer oder Zahlenraten mit if, elif, elseheute bis 04.11.
2Ein größeres Spiel mit Schleifen, Listen und Funktionennach den Schleifen
3Ein Pygame-Spiel verstehen und erweiternim Pygame-Teil
4Start Ihres eigenen Schwerpunkts: Spiel oder App mit Klassendanach
Jedes Mini-Projekt: planen, bauen, ins Git laden, in der nächsten Sitzung vorstellen, im Mahara-Portfolio reflektieren.

Erst planen, dann tippen

Zehn Minuten Planung sparen eine Stunde Fehlersuche

  1. 1
    Idee in zwei SätzenWas soll das Programm tun? Wer spielt es?
  2. 2
    EVA klärenWas wird eingegeben, verarbeitet, ausgegeben?
  3. 3
    Ablauf zeichnenEin Programmablaufplan auf Papier – ein Handyfoto reicht
  4. 4
    Klein bauen und testenEin Stück schreiben, ausführen, dann das nächste

EVA: Eingabe, Verarbeitung, Ausgabe

Am Beispiel Zahlenraten

Eingabe

Der Tipp der Spielerin oder des Spielers
tipp = int(input("Ihr Tipp: "))

Verarbeitung

Mit der geheimen Zahl vergleichen
if tipp == geheim: … elif

Ausgabe

„Zu klein“, „zu groß“ oder „Richtig!“
print("Richtig!")

EVA kennen Sie aus Grundlagen der IT: Jeder Computer und jedes Programm arbeitet so. Schreiben Sie die drei Teile für Ihr Projekt auf, bevor Sie programmieren.

Der Programmablaufplan

Jede Raute wird im Code zu einem if oder elif

Startgeheim = Zufallszahl 1–10Eingabe: tipptipp == geheim?ja„Richtig!“neintipp < geheim?ja„Zu klein“nein„Zu groß“Ende
  • Start und Ende
  • Eingabe oder Ausgabe
  • Verarbeitung
  • Entscheidung: ja oder nein – das ist Ihr if

Auf Papier reicht

Zeichnen Sie zuerst, dann programmieren Sie Raute für Raute. Das Foto kommt mit ins Git.

Zufall mit random

Das einzige Neue für die Variante Zahlenraten

import random

geheim = random.randint(1, 10)
print(f"Die geheime Zahl ist {geheim}.")
Die geheime Zahl ist 7.

So funktioniert es

  • import random holt einen Werkzeugkasten, der bei Python dabei ist
  • random.randint(1, 10) liefert eine ganze Zahl von 1 bis einschließlich 10
  • Bei jedem Start eine neue Zahl

Tipp zum Testen

Lassen Sie sich die geheime Zahl erst einmal ausgeben – vor der Abgabe löschen.

Programmieren im Tandem

So arbeiten auch Profis: Pair Programming

Driver: tippt

Schreibt den Code und sagt laut, was sie oder er gerade macht.

Navigator: denkt mit

Behält den Plan im Blick, liest mit, findet Tippfehler, stellt Fragen.

Alle 10 Minuten tauschen

So programmieren beide – nicht nur, wer schneller tippt.

Beide erklären können

Bei der Vorstellung kann jede und jeder jede Zeile erklären.

KI als dritte Hilfe

Erst selbst überlegen, dann fragen – und die Antwort gemeinsam prüfen.

Wo stehen wir?

Als Nächstes: Ihr Repository im Git

Git: Ihr Code an einem sicheren Ort

Ein Repository ist ein Projektordner mit Gedächtnis

Was ist Git?

Eine Versionsverwaltung: Sie speichert jeden Stand Ihres Codes, und mehrere Personen können daran arbeiten.

Unser Server

git.colilab.de – ein Forgejo-Server der PH. Anmeldung mit Ihrer Adresse @stud.ph-weingarten.de.

Heute nur im Browser

Dateien per Drag & Drop hochladen. Befehle wie push und pull kommen später.

In vier Schritten zum Repository

Eine Person im Tandem legt an, die andere wird Mitarbeiterin oder Mitarbeiter

  1. 1
    RegistrierenAuf git.colilab.de „Registrieren“, Studienadresse eintragen, Bestätigungsmail öffnen
  2. 2
    Repository anlegen„+“ → „Neues Repository“, Name oop26-miniprojekte, Haken bei „Repository initialisieren“. Privat oder öffentlich: Sie entscheiden
  3. 3
    Tandem dazuholen„Einstellungen“ → „Mitarbeiter“ → Benutzername, Schreibrechte. Bei privat auch Franke mit Leserechten
  4. 4
    Datei hochladen„Datei hinzufügen“ → „Datei hochladen“, Dateien hineinziehen, „Änderungen committen“

Ausführliche Anleitung →

Mini-Projekt 1: Ihr Entscheidungsspiel

Am besten im Tandem – allein ist auch möglich

Variante A: Abenteuer

Eine kleine Geschichte oder ein Mini-Krimi mit mindestens drei Entscheidungen: „Sie stehen vor zwei Türen …“

Variante B: Zahlenraten

Der Computer denkt sich eine Zahl. Drei Versuche mit Tipps „zu klein“ oder „zu groß“ – ganz ohne Schleife.

Was drin sein muss

input(), if/elif/else, mindestens einmal and oder or, Kommentare

Abgabe im Git

.py-Datei und Foto des Ablaufplans in oop26-miniprojekte, Link in Mahara

Bis Mi, 04.11., 12:00

In Sitzung 4 stellen einige Tandems ihr Spiel vor.

Aufgabe und Grundgerüst →

Wo stehen wir?

Jetzt: 10 Minuten planen, dann bauen

Fragen?


Reflexion Teil 2

Reflexion zu Sitzung 3

Planung von Mini-Projekt 1 und Feedback ergänzen → HTML kopieren → in Mahara einfügen

QR-Code Reflexion Sitzung 3

To Do’s:

  • Aufgaben 1–3 abschließen, mit den Lösungen vergleichen
  • Mini-Projekt 1 fertig bauen und ins Git laden: Mi, 04.11., 12:00
  • Reflexion Teil 1 und 2 in Mahara einfügen

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