|
| 1 | +student = { |
| 2 | + "name": "John Doe", |
| 3 | + "subjects": [ |
| 4 | + { |
| 5 | + "name": "Mathematics", |
| 6 | + "grade": 88, |
| 7 | + "comment": "Excellent improvement.", |
| 8 | + }, |
| 9 | + { |
| 10 | + "name": "Science", |
| 11 | + "grade": 92, |
| 12 | + "comment": "Outstanding performance.", |
| 13 | + }, |
| 14 | + { |
| 15 | + "name": "History", |
| 16 | + "grade": 78, |
| 17 | + "comment": "Needs to participate more.", |
| 18 | + }, |
| 19 | + {"name": "Art", "grade": 85, "comment": "Very creative."}, |
| 20 | + ], |
| 21 | +} |
| 22 | + |
| 23 | + |
| 24 | +# def build_student_report(student): |
| 25 | +# report_header = f"Progress Report. Student: {student['name']}" |
| 26 | + |
| 27 | +# total = sum(subject["grade"] for subject in student["subjects"]) |
| 28 | +# average = total / len(student["subjects"]) |
| 29 | +# average_report = f"Average: {average:.2f} / 100\n" |
| 30 | + |
| 31 | +# subject_report = "Course Details:\n" |
| 32 | +# for subject in student["subjects"]: |
| 33 | +# subject_report += ( |
| 34 | +# f"{subject['name']:<15} " |
| 35 | +# f"Grade: {subject['grade']:3} " |
| 36 | +# f"Comment: {subject['comment']}\n" |
| 37 | +# ) |
| 38 | + |
| 39 | +# report = f""" |
| 40 | +# {report_header} |
| 41 | +# {average_report} |
| 42 | +# {subject_report} |
| 43 | +# Thank you for reviewing the progress report. |
| 44 | +# """ |
| 45 | + |
| 46 | +# return report |
| 47 | + |
| 48 | + |
| 49 | +def build_student_report(student): |
| 50 | + report_header = f"Progress Report. Student: {student['name']}" |
| 51 | + |
| 52 | + total = sum(subject["grade"] for subject in student["subjects"]) |
| 53 | + average = total / len(student["subjects"]) |
| 54 | + average_report = f"Average: {average:.2f} / 100\n" |
| 55 | + |
| 56 | + subject_report = "Course Details:\n" |
| 57 | + detail_template = "{name:<15} Grade: {grade:3} Comment: {comment}\n" |
| 58 | + for subject in student["subjects"]: |
| 59 | + subject_report += detail_template.format(**subject) |
| 60 | + |
| 61 | + report = f""" |
| 62 | + {report_header} |
| 63 | + {average_report} |
| 64 | + {subject_report} |
| 65 | + Thank you for reviewing the progress report. |
| 66 | + """ |
| 67 | + |
| 68 | + return report |
| 69 | + |
| 70 | + |
| 71 | +print(build_student_report(student)) |
0 commit comments