Aufgaben-Python/g04_verzweigungen_und_bedingungen
2026-08-29 14:42:12 +02:00
..
aufgabe.py Implementiere Lehrpfad 1 Grundlagen (G01 bis G10) und erstelle 3-Lehrpfad-System im Lernportal 2026-08-29 14:42:12 +02:00
index.html Implementiere Lehrpfad 1 Grundlagen (G01 bis G10) und erstelle 3-Lehrpfad-System im Lernportal 2026-08-29 14:42:12 +02:00
musterloesung.py Implementiere Lehrpfad 1 Grundlagen (G01 bis G10) und erstelle 3-Lehrpfad-System im Lernportal 2026-08-29 14:42:12 +02:00
README.md Implementiere Lehrpfad 1 Grundlagen (G01 bis G10) und erstelle 3-Lehrpfad-System im Lernportal 2026-08-29 14:42:12 +02:00
test_aufgabe.py Implementiere Lehrpfad 1 Grundlagen (G01 bis G10) und erstelle 3-Lehrpfad-System im Lernportal 2026-08-29 14:42:12 +02:00

Kapitel G04: Verzweigungen & Bedingungen (Schulabgleich 08.0) 🛤️🔀

Herzlich willkommen zum Kapitel Bedingungen und Verzweigungen!

Programme müssen oft Entscheidungen treffen: Darf die Person schon Auto fahren?, Bekommt sie einen Rabatt?, Ist heute ein Schaltjahr?. In Python steuern wir solche Entscheidungen mit if, elif und else.


🎯 Lernziele

  1. Entscheidungsstrukturen verstehen: if, elif und else für logische Programmabläufe einsetzen.
  2. Die Eisenbahn-Weichen-Analogie begreifen: Sobald die erste Bedingung zutrifft, werden alle nachfolgenden elif/else-Zweige übersprungen.
  3. Vergleichsoperatoren beherrschen: ==, !=, <, >, <=, >=.
  4. Logische Operatoren kombinieren: and (und), or (oder), not (nicht / Verneinung).
  5. Klammern & Rangfolge anwenden: Komplexe Bedingungen mit () sicher strukturieren.
  6. Flache vs. tief verschachtelte Bedingungen: Sauberen, lesbaren Code nach dem KISS-Prinzip schreiben.

💡 Theorie & Wichtige Konzepte

1. Die Weichen-Analogie (Eisenbahn-Gleis) 🛤️

Stell dir dein Programm wie einen Zug auf den Schienen vor. An einer Weiche entscheidet das Signal (Bedingung), auf welches Gleis der Zug abbiegt:

if alter < 12:
    preis = 6.0    # Gleis 1 (Kind)
elif alter >= 65:
    preis = 8.5    # Gleis 2 (Senior)
elif ist_student:
    preis = 9.5    # Gleis 3 (Student)
else:
    preis = 12.0   # Ausweichgleis (Standard-Erwachsener)

🔑 Wichtig: Python prüft die Bedingungen von oben nach unten. Der erste Block, dessen Bedingung True ergibt, wird ausgeführt. Danach verlässt Python die gesamte Weiche!


2. Die Vergleichsoperatoren

Operator Bedeutung Beispiel Ergebnis
== Ist gleich? (Vorsicht: Nicht mit Zuweisung = verwechseln!) 5 == 5 True
!= Ist ungleich? 5 != 3 True
< Kleiner als 10 < 20 True
> Größer als 10 > 20 False
<= Kleiner oder gleich (Grenzwert inkludiert) 10 <= 10 True
>= Größer oder gleich (Grenzwert inkludiert) 18 >= 18 True

3. Logische Operatoren & Wahrheitstabellen

Oft reicht eine einzelne Bedingung nicht aus. Mit logischen Operatoren verknüpfst du mehrere Bedingungen:

and (Logisches UND – Beide müssen wahr sein):

Bedingung A Bedingung B A and B
True True True
True False False
False True False
False False False

or (Logisches ODER – Mindestens eins muss wahr sein):

Bedingung A Bedingung B A or B
True True True
True False True
False True True
False False False

not (Logisches NICHT – Dreht den Wahrheitswert um):

  • not True ergibt False
  • not False ergibt True

4. Das Schaltjahr-Rätsel 📅

Ein schönes Praxisbeispiel für logische Verknüpfungen ist die gregorianische Schaltjahr-Regel:

  1. Ein Jahr ist ein Schaltjahr, wenn es durch 4 teilbar ist (jahr % 4 == 0).
  2. Säkularjahre (Jahrhunderte wie 1900, 2100) sind keine Schaltjahre (jahr % 100 != 0),
  3. außer sie sind durch 400 teilbar (wie 2000, 2400: jahr % 400 == 0).

In Python formuliert:

ist_schalt = (jahr % 4 == 0 and jahr % 100 != 0) or (jahr % 400 == 0)

🎯 Deine Aufgaben in aufgabe.py

Öffne g04_verzweigungen_und_bedingungen/aufgabe.py und implementiere die 4 Funktionen:

  1. TODO 1: Kinokarten-Preisrechner

    • ticket_preis(alter: int, ist_student: bool) -> float
    • Alter < 12: 6.0 €
    • Alter >= 65: 8.5 €
    • 12 bis 64 Jahre: Wenn ist_student -> 9.5 €, sonst -> 12.0 €
  2. TODO 2: Schulnoten-Ermittlung

    • schulnote_text(punkte: int) -> str
    • < 0 oder > 100: "Ungültige Punktezahl"
    • >= 90: "Sehr gut", >= 75: "Gut", >= 60: "Befriedigend", >= 50: "Genügend", < 50: "Nicht genügend"
  3. TODO 3: Schaltjahr-Erkennung

    • ist_schaltjahr(jahr: int) -> bool
    • (jahr % 4 == 0 and jahr % 100 != 0) or (jahr % 400 == 0)
  4. TODO 4: Achterbahn-Zulassung

    • kann_achterbahn_fahren(groesse_cm: int, begleitung_erwachsen: bool) -> bool
    • Ab 140 cm: immer True
    • Ab 120 cm bis 139 cm: True, wenn begleitung_erwachsen == True, sonst False
    • Unter 120 cm: immer False

🧪 Tests ausführen

Überprüfe deine Lösung im Terminal mit:

python3 test_aufgabe.py

Wenn alle 4 Tests mit OK durchlaufen, hast du das Kapitel gemeistert! 🎉