Grundlagen G04 • Schulabgleich 08.0

Bedingungen & Verzweigungen 🛤️🔀

Lerne, wie dein Code mit if, elif und else intelligente Entscheidungen trifft und wie du logische Operatoren meisterst.

📂 Dateien dieser Einheit:
💻 In Web-IDE öffnen → 📄 aufgabe.py (Startercode) 🧪 test_aufgabe.py (Tests) 💡 musterloesung.py (Lösung) 📖 README.md

1. Die Eisenbahn-Weichen-Analogie 🚂

Code wird standardmäßig von oben nach unten Zeile für Zeile ausgeführt. Doch oft soll ein Programm je nach Situation einen anderen Pfad einschlagen: Ein Kinokassen-System berechnet für Kinder einen anderen Preis als für Erwachsene.

🛤️ Das Eisenbahngleis & die Weichen:
Stell dir den Programmlauf wie einen Zug vor, der auf ein Weichensystem zufährt:
1. Das Signal (Bedingung): Die Weiche prüft: "Ist das Alter unter 12?"
2. Grünes Signal (True): Der Zug biegt auf das Kindertarif-Gleis ab und führt dessen Code aus.
3. Rotes Signal (False): Der Zug fährt weiter zur nächsten Weiche (elif).
4. Das Ausweichgleis (else): Wenn keines der Signale grün war, nimmt der Zug das Standardgleis.
5. Weiterfahrt: Hinter der Weichenanlage laufen alle Gleise wieder auf der Hauptstrecke zusammen!

2. Syntax von if / elif / else & Vergleichsoperatoren

In Python werden Verzweigungen mit Doppelpunkt : eingeleitet und der zugehörige Codeblock muss genau 4 Leerzeichen eingerückt sein.

Kino-Tarif-Weiche
if alter < 12:
    preis = 6.00   # 4 Leerzeichen Einrückung
elif alter >= 65:
    preis = 8.50
elif ist_student:
    preis = 9.50
else:
    preis = 12.00
⚠️ Häufige Fehlerquelle: = vs. ==
- = (einfaches Istgleich) ist eine Zuweisung: punkte = 10.
- == (doppeltes Istgleich) ist ein Vergleich: if punkte == 10:.

Die 6 Vergleichsoperatoren:

Operator Bedeutung Beispiel Ergebnis
== Gleich 5 == 5 True
!= Ungleich 5 != 3 True
< / > Kleiner als / Größer als 10 < 20 True
<= / >= Kleiner gleich / Größer gleich 18 >= 18 True

3. Logische Operatoren & Wahrheitstabellen 🧪

Bedingungen lassen sich mit and, or und not kombinieren:

and (Beide wahr)

A B A and B
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

or (Mind. eins wahr)

A B A or B
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

not (Verneinung)

A not A
TrueFalse
FalseTrue
💡 Tipp: Klammern setzen für klare Lesbarkeit
Genau wie in der Mathematik gilt: Klammern (...) binden stärker und machen deinen Code absolut unmissverständlich!
darf_fahren = (groesse >= 140) or (groesse >= 120 and begleitung)

4. 📝 Deine Aufgaben in aufgabe.py

Öffne aufgabe.py und setze folgende 4 Funktionen um:

💡 Lösungshinweise (Aufklappen bei Bedarf)

🔍 Tipp zu TODO 2 (Reihenfolge der Notenstufen)

Prüfe zuerst die ungültigen Werte (punkte < 0 or punkte > 100). Danach kannst du bequem von oben nach unten mit >= 90, >= 75 usw. prüfen!

if punkte < 0 or punkte > 100:
    return "Ungültige Punktezahl"
elif punkte >= 90:
    return "Sehr gut"
# ...
🔍 Tipp zu TODO 3 (Modulo % & Schaltjahre)

Mit dem Modulo-Operator % prüfst du die Teilbarkeit (Restwert der Division ist 0):

if (jahr % 4 == 0 and jahr % 100 != 0) or (jahr % 400 == 0):
    return True
return False

5. 🧪 Automatische Tests & Überprüfung

Führe das Testskript im Terminal aus:

Terminal
python3 test_aufgabe.py

Oder teste das interaktive Programm mit eigenen Eingaben:

Interaktiver Test
python3 aufgabe.py