Seite 1 von 1

Notendurchschnitt einer Klasse berechnen

Verfasst: Montag 15. März 2021, 13:58
von Leon510
Hey, Ich habe folgendes Problem.
Unzwar muss ich den Notendurchschnitt einer Klasse berechnen. Außerdem noch andere Rechnungen mit den Noten durchführen.
Jedoch habe ich das Problem, dass ich die Zahlen aus der Liste nicht entfernen kann, da sie Strings sind.

Code: Alles auswählen

Anzahl_Schüler = int(input("Wieviele Schüler?"))

s = []
for x in range(Anzahl_Schüler):
    a = input("Noten ")
    s +=a




print(s)
Ausgabe: ['1', '2', '3', '4', '5']

Gibt es eine Möglichkeit die ' ' wegzubekommen und eine Int Liste zu machen?

Danke für die Hilfe :)

Re: Notendurchschnitt einer Klasse berechnen

Verfasst: Montag 15. März 2021, 14:34
von Sirius3
Bei Anzahl_Schüler hast Du das doch schon gekonnt. Warum kannst Du es nicht bei Noten?

Variablennamen werden nach Konvention klein geschrieben.
Benutze aussagekräftige Namen. Warum s und a? Das eine ist eine Liste mit `noten` das andere ist eine `note`.
Um Elemente an eine Liste anzuhängen benutzt man append. += ist falsch.

Re: Notendurchschnitt einer Klasse berechnen

Verfasst: Montag 15. März 2021, 14:48
von DeaD_EyE
Du könntest str.split und dann int anwenden.

Code: Alles auswählen

def get_noten():
    noten = input("Noten: ")
    return list(map(int, noten.split(",")))
note.split(",") teilt den str bei den Kommas und die Funktion map führt die Funktion int mit jedem einzelnen Element als Argument aus.
Die Funktion list stößt die Operation dann an, da map alleine nichts macht. list konsumiert dass map Objekt.

Das gleiche nochmal etwas einfacher:

Code: Alles auswählen

def get_noten():
    noten_eingabe = input("Noten: ")
    noten = []
    
    for note in noten_eingabe.split(","):
        note = int(note)
        noten.append(note)
        
    return noten
Die Noten mit einem Komma getrennt eingeben. Leerzeichen brauchen nicht entfernt zu werden, da int und float damit umgehen kann.