Notendurchschnitt einer Klasse berechnen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Leon510
User
Beiträge: 1
Registriert: Montag 15. März 2021, 13:53

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 :)
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1240
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

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.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten