2017-04-23 45 views
-1

我需要爲每位獲得A,B,C,D和F的學生記錄一個計數。該項目的說明要求用戶輸入LETTER成績,而不是百分比分數。那麼我將如何跟蹤每封信呢?下面是我有:Python 3.保留字母等級

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

運行此腳本會產生什麼結果?它不符合您的要求? – lit

回答

0

一個簡單的if-else塊應該只是罰款:

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") 

嘗試尋找到字典對於一個更有效的解決方案。

+0

他們都很棒!非常感謝! –

0

您可以使用一個等級即dict你可以存儲等級A,B,C,d,E,F爲:

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

現在,您可以通過比較用戶輸入的等級。如果它與Dict鍵(A,B,C,D,E,F)中的任何等級匹配,則增加該等級的計數。

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