.txtファイルから成績のリストを取得し、その成績の発生をカウントして、その成績を受け取った学生の数を通知するプログラムを作成しようとしています。
リストの形式は1行に1つの成績であるため、6A
の場合は6人の生徒が返されA
ます。
コードを機能させることができましたが、非常に多くのチェックが実行されており、それを減らす方法があると感じていますが、方法がわかりません。
リストや辞書と関係があるのではないかと思います。
def distribution(filename):
'string ==> int & string, prints out how many students got a letter grade'
infile = open(filename,'r')
grades = infile.read()
aCount = grades.count('A\n')
aMinusCount = grades.count('A-\n')
bCount = grades.count('B\n')
bMinusCount = grades.count('B-\n')
cCount = grades.count('C\n')
cMinusCount = grades.count('C-\n')
dCount = grades.count('D\n')
dMinusCount = grades.count('D-\n')
fCount = grades.count('F')
print(aCount, 'students got A')
print(aMinusCount, 'students got A-')
print(bCount, 'students got B')
print(bMinusCount, 'students got B-')
print(cCount, 'students got C')
print(cMinusCount, 'students got C-')
if dCount == 0:
pass
else:
print(dCount, 'students got D')
if dMinusCount == 0:
pass
else:
print(dMinusCount, 'students got D-')
print(fCount, 'students got F')