Python – 03 Wahrheitswerte und Kontrollstrukturen
Voraussetzungen
Bevor du mit diesem Modul startest, solltest du bereits vertraut sein mit:
- Python – 02 Rechnen mit Integer und Floats - Rechnen mit Zahlen in Python
Lernziele
In dieser Lektion lernen Sie:
- Booleans (True/False) nutzen
- Vergleichsoperatoren anwenden
- Logische Operatoren kombinieren
- if-elif-else Bedingungen schreiben
- Verschachtelte Bedingungen verstehen
Was sind Booleans?
Booleans (sprich: Bu-li-äns) sind Wahrheitswerte. Sie können nur zwei Zustände haben: wahr oder falsch. In Python schreibt man diese als True (wahr) und False (falsch).
Grundgerüst
| |
Der Datentyp für Wahrheitswerte heißt in Python bool (kurz für Boolean). Du kannst ihn mit type() prüfen:
| |
Wichtig zu wissen
In Python müssen True und False IMMER mit einem Großbuchstaben am Anfang geschrieben werden. true oder false (kleingeschrieben) funktioniert nicht und gibt einen Fehler!
Warum sind Booleans wichtig?
Booleans sind die Grundlage für Entscheidungen in deinem Programm. Dein Code kann unterschiedliche Dinge tun, je nachdem ob etwas wahr oder falsch ist.
Stell dir vor, du programmierst ein Spiel:
- Ist der Spieler am Leben? →
TrueoderFalse - Hat der Spieler gewonnen? →
TrueoderFalse - Ist das Level abgeschlossen? →
TrueoderFalse
Vergleichsoperatoren
Mit Vergleichsoperatoren kannst du Werte vergleichen. Das Ergebnis ist immer ein Boolean (True oder False).
| Operator | Bedeutung | Beispiel | Ergebnis |
|---|---|---|---|
== | gleich | 5 == 5 | True |
!= | ungleich | 5 != 3 | True |
< | kleiner als | 3 < 5 | True |
> | größer als | 5 > 3 | True |
<= | kleiner oder gleich | 5 <= 5 | True |
>= | größer oder gleich | 3 >= 5 | False |
Spezialfall: Modulo-Operator %
| |
Beispiele:
| |
Aufgabe 1: Erste Vergleiche
- Erstelle eine Variable
alterund weise ihr dein Alter zu. - Prüfe mit Vergleichsoperatoren:
- Ist dein Alter größer als 15?
- Ist dein Alter gleich 16?
- Ist dein Alter ungleich 100?
- Gib alle drei Vergleiche mit
print()aus.
Logische Operatoren
Manchmal möchtest du mehrere Bedingungen kombinieren. Dafür gibt es logische Operatoren:
and (und)
Beide Bedingungen müssen wahr sein, damit das Ergebnis True ist.
| |
or (oder)
Mindestens eine Bedingung muss wahr sein, damit das Ergebnis True ist.
| |
not (nicht)
Kehrt den Wahrheitswert um: aus True wird False und umgekehrt.
| |
Kombinierte Beispiele:
| |
Wahrheitstabellen
and-Operator:
True and True→TrueTrue and False→FalseFalse and True→FalseFalse and False→False
or-Operator:
True or True→TrueTrue or False→TrueFalse or True→TrueFalse or False→False
if-else-Bedingungen
Mit if kannst du deinen Code nur dann ausführen lassen, wenn eine Bedingung wahr ist.
Einfaches if-else
| |
Du kannst auch einen else-Block hinzufügen für den Fall, dass die Bedingung falsch ist:
| |
if-elif-else
Mit elif (else if) kannst du mehrere Bedingungen prüfen:
| |
Verschachtelte Bedingungen
Tipp
\n Ist das Zeichen für “neue Zeile” im Terminal
Du kannst if-Bedingungen ineinander verschachteln, um komplexere Entscheidungen zu treffen.
Beispiel: Ratespiel
| |
Praktische Beispiele mit if-else
Mit dem folgenden Code wird geprüft, ob die Variable zahl den Wert 3 hat oder nicht. Je nach dem, ob die Bedingung erfüllt ist oder nicht, wird eine andere Anweisung befolgt.
| |
Aufgabe 2: Ratespiel mit Verschachtelung
Mit Python kannst du auch ein kleines Ratespiel erstellen. Dafür musst du if-else-Bedingungen verschachteln. Wie das funktioniert, klären wir an einem Beispiel erst einmal visuell mithilfe eines sogenannten Flussdiagramms:
- Nutzer wird nacheinander gefragt.
- Seine Angabe wird gespeichert.
- Die Bedingungen werden geprüft.

Der Nutzer soll immer wieder gefragt werden und eine Eingabe machen, dafür sorgt der folgende Teil.
| |
Der vollständige Code zu dem Ratespiel oben sieht so aus:
| |
- Probiere den Code oben aus und erkläre:
| |
Ausblick: Fehler und Ausnahmen (try/except)
Gleich in Aufgabe 3 nutzt du zum ersten Mal int(input(...)), um die Nutzer-Eingabe in eine Zahl umzuwandeln. Was passiert, wenn du dort statt einer Zahl einfach Buchstaben eintippst? Du bekommst eine Fehlermeldung, die so aussieht:
Traceback (most recent call last):
File "meindatei.py", line 1, in <module>
aw = int(input('Gib eine Zahl ein!\n'))
ValueError: invalid literal for int() with base 10: 'abc'So einen Fehler nennt man in Python eine Exception (zu Deutsch: Ausnahme). Der Name der Exception – hier ValueError – sagt dir, welche Art von Fehler aufgetreten ist. Ohne weitere Vorkehrungen stürzt dein Programm ab.
Fehler abfangen mit try/except
Mit try und except kannst du eine Exception abfangen, bevor dein Programm beendet wird:
| |
So liest du das:
try:– “Versuche, den folgenden Code auszuführen.”except:– “Falls dabei irgendein Fehler auftritt, mache stattdessen das hier.”
Hinweise für Interessierte
Gibt es nur except oder auch Varianten?
Ja, man kann hinter except auch einen konkreten Fehler-Namen schreiben, z.B. except ValueError:, um gezielt nur einen bestimmten Fehler-Typ abzufangen (im Traceback oben siehst du ja, dass Python dem Fehler einen Namen gibt – hier ValueError). Für den Anfang reicht aber das allgemeine except:, das jeden Fehler auffängt.
Warum nur kurz und nicht ausführlich?
Eine richtig robuste Eingabeprüfung fragt den Nutzer so lange erneut, bis die Eingabe stimmt. Dafür brauchst du eine Schleife – und die lernst du in Python – 06 While-Schleifen. Dort kommt try/except wieder, wird zum festen Muster und auch die konkrete Variante mit ValueError schauen wir uns dort genauer an.
Aufgabe 3: elif-Statement
if-else-Bedingungen lassen sich verschachteln, um mehr als nur genau 2 Fälle zu unterscheiden. Das kann schnell unübersichtlich werden. Man kann auch elif nutzen!
Beispiel
| |
- Probiere das Beispiel aus. Gib auch mal etwas Ungültiges ein. Was passiert jetzt – und wie unterscheidet sich das Verhalten von einem Programm ohne
try/except? - Ändere den Code so, dass geprüft wird, ob eine Zahl kleiner, gleich oder größer als 17 ist.
- Erstelle eine neue Version deines Ratespiels, bei dem du ein elif-Statement nutzt, um ungültige Eingaben abzufangen. Schau dir den Tipp möglichst spät an. (a)
- Schau dir meine Lösung unter Tipp an und erstelle ein Flussdiagramm (Begriff: siehe Aufgabe 3) zu dem Code in dem Tipp. Der Code dort ist etwas anders als der in Aufgabe 3. Du kannst [diese Seite](https://cryptpad.fr/diagram/
- ) dafür nutzen. (a)
- Erstelle ein Flussdiagramm zu deiner Lösung aus Teilaufgabe 3, also zu deinem eigenen Ratespiel mit elif-Statements. (a)
Tipp
Mit meinem Ratespiel oben hätte man:
| |
Aufgabe 4a: Logische Operatoren (and/or)
Erstelle einen Code der folgende Kriterien erfüllt (a):
- Du als Programmierer:in gibst zwei Werte für zwei Variablen vor.
- Die gespeicherten Werte werden in einem if-else-Codeblock beide geprüft.
- Unterscheide folgende Fälle:
- beide Bedingungen werden erfüllt
- mindestens eine Bedingung wird erfüllt
- keine Bedingung wird erfüllt
Grundgerüst:
| |
Beispiel:
| |
Turtle-Exkurs (Einstieg)
Aufgabe 4b: Turtle-Exkurs – Bedingte Zeichnungen
Mit dem Modul turtle kannst du grafische Ausgaben erzeugen. Die Turtle ist ein Stift, den du über eine Leinwand steuerst.
Einführung – Probiere zuerst diesen Code aus:
| |
Jetzt wird es spannend – Bedingungen steuern die Zeichnung:
- Probiere den Code unten aus und teste verschiedene Eingaben.
- Erweitere den Code: Wenn der Nutzer eine Zahl kleiner als 30 eingibt, soll die Turtle nichts zeichnen, sondern stattdessen eine Fehlermeldung in der Konsole ausgeben. (a)
- Frage den Nutzer zusätzlich nach einer Form: “Quadrat” oder “Dreieck”. Zeichne mit if-elif-else die passende Form. Tipp: Ein gleichseitiges Dreieck hat Winkel von 120° (Außenwinkel). (a)
- Bonusaufgabe: Frage den Nutzer per
input(), ob die Form gefüllt werden soll (“ja”/“nein”). Nutzet.begin_fill()undt.end_fill()sowiet.fillcolor("yellow"), um die Form zu füllen.
| |
Wahrheitswerte verschiedener Datentypen
In Python haben nicht nur Booleans einen Wahrheitswert. Fast alle Werte können als wahr oder falsch interpretiert werden:
Als False interpretiert werden:
False(natürlich)0(Zahl Null)""(leerer String)[](leere Liste)None(spezieller Wert für “nichts”)
Als True interpretiert werden:
True(natürlich)- Alle Zahlen außer 0
- Alle nicht-leeren Strings
- Alle nicht-leeren Listen
Beispiele
| |
Du kannst mit bool() jeden Wert in einen Boolean umwandeln:
| |
Aufgabe 5: Wahrheitswerte testen
- Erstelle eine Liste mit verschiedenen Werten: Zahlen, Strings, leere Strings, 0, etc.
- Gib für jeden Wert aus, ob er als
TrueoderFalseinterpretiert wird - Nutze dafür die
bool()-Funktion
Aufgaben
Aufgabe 6: Altersprüfung
Schreibe ein Programm, das:
- Nach dem Alter fragt (nutze
input()und konvertiere zuint) - Prüft, ob die Person volljährig ist (18 oder älter)
- Eine entsprechende Nachricht ausgibt
| |
Aufgabe 7: Notenrechner
Erstelle einen einfachen Notenrechner:
- Der Benutzer gibt seine Punktzahl ein (0-100)
- Das Programm gibt die entsprechende Note aus:
- 90-100 Punkte: “Sehr gut”
- 80-89 Punkte: “Gut”
- 70-79 Punkte: “Befriedigend”
- 60-69 Punkte: “Ausreichend”
- unter 60: “Nicht bestanden”
| |
Aufgabe 8: Login-System
Erstelle ein einfaches Login-System:
- Definiere einen korrekten Benutzernamen und ein Passwort als Variablen
- Frage den Benutzer nach Benutzername und Passwort
- Prüfe mit
and, ob beides korrekt ist - Gib “Login erfolgreich!” oder “Falsche Anmeldedaten!” aus
Hinweis: Denke daran, dass Groß- und Kleinschreibung bei Strings wichtig ist!
Aufgabe 9: Schaltjahr-Prüfer
Schreibe ein Programm, das prüft, ob ein Jahr ein Schaltjahr ist.
Regeln für Schaltjahre:
- Ein Jahr ist ein Schaltjahr, wenn es durch 4 teilbar ist
- ABER: Wenn es durch 100 teilbar ist, ist es KEIN Schaltjahr
- AUSSER: Wenn es durch 400 teilbar ist, ist es doch ein Schaltjahr
Tipp: Der Modulo-Operator % gibt den Rest einer Division zurück.
jahr % 4 == 0bedeutet: Jahr ist durch 4 teilbar (Rest ist 0)
Lösung zeigen
| |
Flask-Anwendung
Du hast gerade gelernt, wie man Bedingungen in Python nutzt. In Flask kannst du diese Logik im Backend verwenden!
Voraussetzung für diese Aufgabe
Du solltest bereits Flask – 01 Erste Schritte durchgearbeitet haben. Wenn nicht, hole das jetzt nach.
Altersprüfung in Flask
Setze die Altersprüfung aus Aufgabe 6 in eine Flask-Anwendung um.
Anforderungen:
- Erstelle eine Route
/alter-checkmit GET und POST - Zeige ein Formular, wo der Benutzer sein Alter eingeben kann
- Nach dem Absenden: Prüfe in Python mit if-else, ob volljährig
- Übergib das Ergebnis als Text ans Template
Tipp: Die if-else Logik machst du in Python, nicht im Template!
Lösung zeigen
| |
| |
| |