@drachenjoghurt: Statt den Benutzer die Anzahl der Werte eingeben zu lassen, wäre es IMHO nutzerfreundlicher wenn man einfach solange Eingaben abfragt, bis der Benutzer beispielsweise eine Leereingabe macht.
Falls man die Anzahl abfragt: das ist eher eine ganze Zahl, denn man kann ja schlecht beispielsweise 3½ Noten abfragen/eingeben lassen.
Sind bei den Noten Kommazahlen sinnvoll?
Man sollte den Benutzer so lange Fragen, bis er tatsächlich eine Zahl eingegeben hat. Also verhindern, dass eine Fehleingabe das Programm mit einer Fehlermeldung abbricht. Das ist nämlich superärgerlich wenn man 10 Noten eingeben will und sich bei der 9. vertippt und alles noch mal von vorne machen muss.
Um eine Leerzeile ausgeben zu lassen muss man keine Zeichenkette mit einem Leerzeichen ausgeben lassen, welches man ja sowieso nicht sieht. Es reicht eine leere Zeichenkette, beziehungsweise sogar *gar* kein Wert den man `print()` übergibt.
Man definiert Namen erst wenn man sie braucht und nicht weit entfernt vom ersten Einsatz. `nummer` manuell hochzuzählen ist hier nicht wirklich sinnvoll, denn `i` hat ja immer den gleichen Wert. `i` sollte also eigentlich `nummer` heissen.
`noten` wäre ein guter Name für die Noten, aber ein weniger guter für die *Anzahl* der Noten.
Die eingegebenen Noten musst Du Dir entweder merken, oder schon während der Eingabe die notwendigen Teilberechnungen für die Ausgaben durchführen. Merken wäre einfacher/übersichtlicher, weil man dann die Benutzerinteraktion und die Berechnung nicht vermischen würde. Eine Liste würde sich für die Noten anbieten.
`input()` kann man einen Text mitgeben, dann braucht man da kein extra `print()` davor.
Was ist denn der Unterschied zwischen Notendurchschnitt und Notenspiegel?