für durchschnittliche Solving:
Um den Durchschnitt zu erhalten Sie alle Noten hinzufügen müssen zusammen, dann dividiere es durch die Anzahl der Punkte. Sie können dies tun, indem sie durch die Leitungen laufen und alle Noten zusammenfassend, teilen dann durch die Anzahl der Zeilen
Sortierung nach Punkten:
Sie müssen die sortiert() Funktion aufrufen und Ihren eigenen Schlüssel geben. Du hattest eine Funktion, die es fast getan hat, ich habe es nur ein bisschen repariert. Sie senden ihm die Liste der Zeilen und Ihren Schlüssel, der die Punktzahl zurückgibt, und kehren ihn dann um, da Sie ihn am höchsten oder am niedrigsten haben möchten. Dann ist es nur eine Frage der durch Ihre neue sortierte Liste Looping und Drucken jeder Zeile
Insgesamt Kommentare
Die Struktur dieses Programms ist sehr chaotisch und redundant. Sie sollten die Datei nur einmal lesen und dann alles herausfinden. Das Durchlaufen der Datei in jeder if-Anweisung ist nur langsam. Sie sollten auch Funktionen für eine Menge davon verwenden. Machen Sie eine Funktion, die den Durchschnitt zurückgibt, eine Funktion, die die Liste nach Score usw. zurückgibt. Den Code zu hinterlassen, der in der Hauptsache verschlüsselt ist, macht es nur schwer zu lesen
Ich habe diese in dem Code unten implementiert, aber ich schlage vor Sie versuchen, sie auf eigene Faust jetzt, dass Sie verstehen, was diesen Code zu tun und nur als Referenz verwenden, wenn Sie
sort = input("What would you like to do with this class? Put them into alpabetical order(a)? Average the scores(b)? Highest to lowest(c)?")
wf = "file.txt"
with open(wf, 'r') as r:
if sort == 'a':
for line in sorted(r):
print(line, end = '')
elif sort == 'b':
totalScore = 0
numOfScores = 0
for line in sorted(r):
numOfScores += 1
totalScore+= int(line.split('score = ')[1])
average = totalScore/numOfScores
print(average)
elif sort == 'c':
def score(line):
return int(line.split('=')[1])
with open(wf, 'r') as r:
linesList = r.readlines()
sortedList = sorted(linesList, key=score)
for line in sortedList:
print(line.rstrip("\n"))
Für dieses Beispiel stecken ich Ihnen zur Verfügung gestellten Beispiel Partituren verwendete Datei, wie solche:
bob - score = 12
harry - score = 1
ellis - score = 21
sam - score = 30
Können Sie die Frage bearbeiten, um ein Beispiel der Daten in der Datei? – paisanco
Warum nicht Textdatei in Pandas importieren, Pythons Datenanalysepaket, das Aggregate wie Durchschnitt sortieren und ausführen kann? – Parfait