Zum Inhalt springen
BetaEN
Lektion 13 von 35Python

Python · Lektion 13 · 45 Minuten

Boss-Level: Das Zeugnis-Programm

Das lernst du

  • Alles aus der Einsteiger-Stufe in einem Projekt verbinden
  • Mit Dictionaries, Schleifen und Funktionen Daten auswerten
  • Ein Ergebnis übersichtlich ausgeben

Willkommen beim Boss!

Am Ende jeder Stufe wartet ein Boss-Level: ein Projekt, das alles verbindet, was du in der Stufe gelernt hast. Kein neuer Stoff – aber diesmal musst du selbst entscheiden, welche Werkzeuge du wie kombinierst.

Dein Auftrag: Ein Programm, das aus einem Zeugnis den Durchschnitt, das beste Fach und die Wackelkandidaten herausfindet.

Deine Werkzeuge

Du brauchst nur Dinge, die du schon kennst. Hier eine kleine Erinnerung:

noten = {"Mathe": 2, "Deutsch": 3, "Englisch": 1}

# Alle Werte, alle Schlüssel, alle Paare
print(list(noten.values()))
print(list(noten.keys()))
for fach, note in noten.items():
    print(fach, "→", note)

# Rechnen mit Listen
print(sum(noten.values()), len(noten))
print(round(7 / 3, 1))
print(sorted(["Physik", "Chemie", "Mathe"]))

Das Beste finden

Eine Idee für „bestes Fach“: Merk dir das bisher beste Fach und vergleiche jedes weitere damit – wie beim Fehler-Detektiv, nur diesmal richtig herum:

punkte = {"Lea": 12, "Tim": 17, "Ida": 9}
bester_name = None
for name, wert in punkte.items():
    if bester_name is None or wert > punkte[bester_name]:
        bester_name = name
print("Gewinner:", bester_name)

Profi-Abkürzung: max(punkte, key=punkte.get) macht dasselbe in einer Zeile. Für das Zeugnis brauchst du das Gegenstück min.

Plane, bevor du tippst

  1. Schreib zuerst auf Deutsch auf, was die Funktion Schritt für Schritt tun soll.
  2. Bau dann einen Teil nach dem anderen und prüfe ihn mit print().
  3. Erst wenn alle drei Teile stimmen: return mit dem fertigen Dictionary.

Wenn du den Boss geschafft hast, beherrschst du die Einsteiger-Stufe. 🏆

Deine Aufgabe

Jetzt bist du dran

Schreib die Funktion zeugnis(noten). Sie bekommt ein Dictionary Fach → Note und gibt ein Dictionary zurück mit: "schnitt" (Durchschnitt, mit round(..., 1) auf eine Nachkommastelle gerundet), "bestes_fach" (das Fach mit der kleinsten Note) und "nachpruefung" (eine alphabetisch sortierte Liste aller Fächer mit Note 5 oder 6).

def zeugnis(noten):
    # Tipp: sum(), len(), min() mit key= oder eine Schleife, sorted()
    pass


noten = {"Mathe": 2, "Deutsch": 3, "Englisch": 1, "Physik": 5}
ergebnis = zeugnis(noten)
print(ergebnis)

Ohne Hinweise gelöst gibt es einen ⭐ auf deiner Fortschrittsseite.

Lösung anzeigen

Versuch es erst selbst – aus Fehlern lernt man am meisten. Hier ist eine mögliche Lösung:

def zeugnis(noten):
    schnitt = round(sum(noten.values()) / len(noten), 1)
    bestes_fach = min(noten, key=noten.get)
    nachpruefung = sorted(fach for fach, note in noten.items() if note >= 5)
    return {"schnitt": schnitt, "bestes_fach": bestes_fach, "nachpruefung": nachpruefung}


noten = {"Mathe": 2, "Deutsch": 3, "Englisch": 1, "Physik": 5}
ergebnis = zeugnis(noten)
print(ergebnis)