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ückmin.
Plane, bevor du tippst
- Schreib zuerst auf Deutsch auf, was die Funktion Schritt für Schritt tun soll.
- Bau dann einen Teil nach dem anderen und prüfe ihn mit
print(). - Erst wenn alle drei Teile stimmen:
returnmit 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)- Denkanstoß
Am Ende der Funktion:
return{"schnitt": ...,"bestes_fach": ...,"nachpruefung": ...} - Welcher Befehl hilft?
Summe der Noten durch die Anzahl der Fächer –
sum(noten.values())/len(noten)– und dannround(..., 1).Gesucht ist das Fach mit der kleinsten Note. Geh mit einer Schleife durch
noten.items()und merk dir das beste Fach.Sammle alle Fächer mit Note 5 oder 6 in einer Liste und gib sie sortiert zurück –
sorted(liste). - Lückencode – ergänze die ___
def zeugnis(noten): schnitt = ___ bestes_fach = ___ nachpruefung = ___ return ___ 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🔒 Erst nach allen Hinweisen oder 2 Prüf-Versuchen
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)