我在试图找出我正在编写的程序的代码时遇到了麻烦。我得到了一个格式如下的文件:
student_firstname
student_lastname
student_number
assignment_mark
midterm_mark
exam_grade
final_mark
这是一个示例:
Marilyn
Malone
136238
88
72
70
Esther
Mulcahy
194563
25
45
91
William
Gray
110031
33
38
62
我试图找到一种方法来返回所有学生的最高和最低 final_mark。到目前为止我所做的是:
infile = open(fileName, "r")
myList = []
name = infile.readline().strip()
passingGrades = 0
failingGrades = 0
avGrade = 0
while name != '':
highestGrade = [0, 'studentName']
lowestGrade = [99, 'studentName']
lastName = infile.readline().strip()
studentNum = infile.readline().strip()
assignGrade = infile.readline().strip()
midGrade = infile.readline().strip()
examGrade = infile.readline().strip()
averageGrade = ((int(assignGrade) * 0.25) + (int(midGrade) * 0.25) +
(int(examGrade) * 0.50))
def lowGrade(x):
if x < lowestGrade[0]:
lowestGrade.pop(0)
lowestGrade.pop(0)
lowestGrade.append(x)
lowestGrade.append(name)
lowestGrade.append(lastName)
return lowestGrade
if averageGrade >= 50 and int(examGrade) >= 50:
#print(name)
passingGrades += 1
avGrade += averageGrade
if averageGrade > highestGrade[0]:
highestGrade.pop(0)
highestGrade.pop(0)
highestGrade.append(averageGrade)
highestGrade.append(name)
highestGrade.append(lastName)
else:
pass
else:
failingGrades += 1
avGrade += averageGrade
lowGrade(averageGrade)
name = infile.readline().strip()
finalAverage = avGrade / (passingGrades + failingGrades)
highFinal = ' '.join(str(x) for x in highestGrade)
lowFinal = ' '.join(str(x) for x in lowestGrade)
当程序使用其中一个文本文件运行时,我得到:
Number of passes: 9
Number of fails: 1
Average final grade: 64.55
The Highest Grade: 79.5 Patty Marshall
The Lowest Grade: 79.5 Patty Marshall
任何帮助深表感谢!
慕妹3242003
互换的青春
相关分类