Was ich versuche, ist eine Liste von Namen und Noten basierend auf Benutzereingaben zu machen, und dann die Liste anzuzeigen sowie die Liste in einer Tabelle zu organisieren und schließlich die Durchschnittsnote zu berechnen.Berechnung der durchschnittlichen Note mit Funktionen und Listen in Python 3.6
Also möchte ich, dass mein Skript den Benutzer auffordert, einen Namen und eine Note einzugeben und sie dann in einer Liste zu speichern. Diese Eingabeaufforderung wird wiederholt, bis der Benutzer eine leere Zeichenfolge eingibt (drücken Sie einfach die Eingabetaste, während Sie zur Eingabe eines Namens aufgefordert werden).
Ich habe ein Problem, die Liste zu speichern und den Druck und die Berechnung einzuleiten, wenn ein leerer String eingegeben wird.
Hier ist, was ich bisher habe:
# Importing Python tabulate package
from tabulate import tabulate
# Defining functions
def getRec():
# Get a record from user input, return an empty of the user entered an empty string as input
name = str(input("Enter a name: "))
if name != "":
score = int(input("Enter the grade of " + name +": "))
return name,score
else:
return None
def addList(List,rec):
# Add a rec into the list
List = tuple(rec)
return List,rec
def putRec(List):
# Print a record in a specific format
print(List)
def printTable(List):
# Print a table with a heading
print(tabulate(List,showindex="always",headers=["Index","Name","Grade"]))
def average(List):
# Computes the average score and return the value
total = List[0][1]
avg = total/len(List)
print("Average Grade: ",avg)
# Main function
List = []
rec = []
while True:
rec = list(getRec())
List = addList(List,rec)
if rec == None:
for index in range(len(List)):
print()
putRec(List)
print()
printTable(List)
print()
average(List)
break
Wenn ich versuche, den Druck und die Berechnung zu starten, ein Fehler ist, weil ich eine ‚None‘ auf meiner ersten Funktion zurückgegeben. Aber wenn ich Nullen zurückgebe, wird die Liste zu Nullen. Ich brauche Hilfe beim Versuch, meine anderen Funktionen zu initiieren und vielleicht zu beheben, wie ich meine Liste basierend auf den Eingaben erstelle.
Jede Hilfe wird geschätzt. Danke im Voraus.
Der Code funktioniert! Vielen Dank für deine Hilfe. Der Code druckt jedoch die Liste, die Tabelle und den Durchschnitt zweimal. –
Ich habe meine Antwort bearbeitet;) –
Sie haben Recht! Wenn ich die for-Schleife verwende, drucke ich alles nach der Anzahl der Elemente in der Liste. Danke, dass du aufguckst. –