diff --git a/analyze_grades.py b/analyze_grades.py index 3eaa57fb576d85c5b53b45f6a823968b2c550974..37c9ffa7fa67fedb9199d48ffa07d46e6263a8b8 100755 --- a/analyze_grades.py +++ b/analyze_grades.py @@ -104,13 +104,13 @@ def print_sample_scores(assignment: CanvasAssignment, major_partitions: Dict[Major, Set[CanvasUser]], students: Optional[List[CanvasUser]] = None) -> None: points_possible: float = assignment.get_points_possible() - a_student: Optional[CanvasUser] = None - b_student: Optional[CanvasUser] = None - c_student: Optional[CanvasUser] = None for major in majors: student_subset: Set[CanvasUser] = major_partitions[major].copy() if students is None \ else major_partitions[major].intersection(students) selected_students: Set[CanvasUser] = set() + a_student: Optional[CanvasUser] = None + b_student: Optional[CanvasUser] = None + c_student: Optional[CanvasUser] = None if len(student_subset) == 0: print(f'{major.name}: no students.') elif len(student_subset) <= 30: @@ -150,17 +150,17 @@ def print_statistics_for_some_majors(assignment: CanvasAssignment, students: Optional[List[CanvasUser]] = None) -> None: points_possible: float = assignment.get_points_possible() for major in majors: - student_subset: Set[CanvasUser] = major_partitions[major] if students is None \ + student_subset: Set[CanvasUser] = major_partitions[major].copy() if students is None \ else major_partitions[major].intersection(students) valued_scores: List[float] = [scores[student] for student in student_subset if scores[student] is not None] try: average_score: float = statistics.mean(valued_scores) scaled_average_score: float = 100 * average_score / points_possible - print(f'{major.name:27}students:{len(major_partitions[major]):>3} ' + print(f'{major.name:27}scored students:{len(valued_scores):>3} ' f'scaled mean score: {scaled_average_score:.2f}%') except statistics.StatisticsError as exception: - print(f'{major.name:27}students:{len(major_partitions[major]):>3} no mean score computed: {exception}') + print(f'{major.name:27}scored students:{len(valued_scores):>3} no mean score computed: {exception}') def print_statistics(assignment: CanvasAssignment,