2017-04-23 7 views
-1

Ich muss eine Tally von jedem Schüler, der ein A, B, C, D und F verdient. Die Anweisungen für das Projekt bitten, dass der Benutzer geben Sie die Letter-Klasse und nicht die Prozentzahl. Also, wie würde ich jeden Brief im Auge behalten? Hier ist, was ich habe:Python 3. Halten Sie eine Reihe von Buchstaben Grad

Grades = open("ClassNameGrades.txt", "w") 
count = 0 
A=0 
B=0 
C=0 
D=0 
F=0 

Grades.write=input("Enter name of class - ",) 
Grades.write= input("Enter name of faculty - ") 
numStudents= int(float(input("Enter the amount of students - "))) 

def gradeInput(count,numStudents,A1): 
    while count<numStudents: 
     studentName=input("Enter name of student - ") 
     Grades.write(studentName("\n")) 
     studentGrade=input("Enter student letter grade - ",) 
     Grades.write(studentGrade("\n")) 
     count+=count 
+0

Welches Ergebnis liefert dieses Skript und wie wird es Ihren Anforderungen nicht gerecht? – lit

Antwort

0

Ein einfacher if-else-Block sollte gut funktionieren:

studentGrade = input("Enter student letter grade - ").upper() 
if studentGrade == "A": 
    A += 1 
elif studentGrade == "B": 
    B += 1 
elif studentGrade == "C": 
    C += 1 
elif studentGrade == "D": 
    D += 1 
elif studentGrade == "F": 
    F += 1 
else: 
    print("Error") 

Versuchen in ein Wörterbuch für eine effizientere Lösung.

+0

Sie funktionierten beide großartig! Ich danke dir sehr! –

0

Sie können eine dict für die Klassen verwenden das heißt können Sie die Noten speichern A, B, C, D, E, F als:

grades = {'A': 0, 'B': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0} 

Jetzt können Sie die Noten vom Benutzer eingegebenen vergleichen. Wenn es mit einer der Noten in dict Schlüsseln (A, B, C, D, E, F) übereinstimmt, erhöhen Sie die Anzahl dieser Noten.

def gradeInput(count,numStudents,A1): 
    while count<numStudents: 
     studentName=input("Enter name of student - ") 
     Grades.write(studentName("\n")) 
     studentGrade=input("Enter student letter grade - ",) 
     Grades.write(studentGrade("\n")) 
     if studentGrade in grades: 
      grades[studentGrade] += 1 
     count += count 
Verwandte Themen