2017-04-23 52 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