Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

def compute _ letter _ grade ( average _ score ) : if average _ score 9 0 : return ' A ' elif 8

def compute_letter_grade(average_score):
if average_score 90 :
return 'A'
elif 80= average_score 90:
return 'B'
elif 70 average_score 80 :
return 'C'
elif 60 average_score 70 :
return 'D'
else:
return 'F'
def main():
input_file_name = input("Enter the name of the grade information file: ")
# Read grade information from the file
with open(input_file_name, 'r') as file:
lines = file. * re\bar (a) lines )
# Process each line to extract student information
exam_scores =[]
students =[]
for line in lines:
data = line.strip().split('\t')
last_name = data[0]
first_name = data[1]
scores =[int(score) for score in data[2:]]
students.append((last_name, first_name, scores))
exam_scores.extend(scores)
# Compute average exam score for each student
student_grades =[]
for student in students:
average_score = sum(student[2])?? len(student[2])
letter_grade = compute_letter_grade(average_score)
student_grades.append(( student[0], student[1], student[2], letter_grade))
# Compute average score for each exam
num_exams = len(students[0][2])
exam_averages exam_scores[i::num_exams])/ len(exam_scores[i::num_exams]) for i in range(num_exams)]
# Write student information and averages to output file
with open('report.txt','w') as output_file:
for student in student_grades:
for score in student[2]:
output_file.write(f"{score how do i fix this white space error?
this is my current code.
def compute_letter_grade(average_score):
if average_score >=90:
return 'A'
elif 80= average_score 90:
return 'B'
elif 70= average_score 80:
return 'C'
elif 60= average_score 70:
return 'D'
else:
return 'F'
def main():
input_file_name = input("Enter the name of the grade information file: ")
# Read grade information from the file
with open(input_file_name, 'r') as file:
lines = file.readlines()
# Process each line to extract student information
exam_scores =[]
students =[]
for line in lines:
data = line.strip().split('\t')
last_name = data[0]
first_name = data[1]
scores =[int(score) for score in data[2:]]
students.append((last_name, first_name, scores))
exam_scores.extend(scores)
# Compute average exam score for each student
student_grades =[]
for student in students:
average_score = sum(student[2])/ len(student[2])
letter_grade = compute_letter_grade(average_score)
student_grades.append((student[0], student[1], student[2], letter_grade))
# Compute average score for each exam
num_exams = len(students[0][2])
exam_averages =[sum(exam_scores[i::num_exams])/ len(exam_scores[i::num_exams]) for i in range(num_exams)]
# Write student information and averages to output file
with open('report.txt','w') as output_file:
for student in student_grades:
output_file.write(f"{student[0]}\t{student[1]}\t")
for score in student[2]:
output_file.write(f"{score}\t")
output_file.write(f"{student[3]}
")
output_file.write("Averages:\t")
for i, avg_score in enumerate(exam_averages, start=1):
output_file.write(f"exam {i}: {avg_score:.2f},")
print("Report generated successfully.")
if __name__=="__main__":
main()
image text in transcribed

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions