더북(TheBook)

코드 6-29 oop1/oop1_3/datahandler.py ③

    def evaluate_class(self, total_avrg, sd):       #7
        avrg = self.get_average()
        std_dev = self.get_standard_deviation()

        if avrg <total_avrg and std_dev >sd:
            print("성적이 너무 저조하고 학생들의 실력 차이가 너무 크다.")
        elif avrg > total_avrg and std_dev >sd:
            print("성적은 평균 이상이지만 학생들의 실력 차이가 크다. 주의 요망!")
        elif avrg < total_avrg and std_dev <sd:
            print("학생들의 실력 차이는 크지 않지만 성적이 너무 저조하다. 주의 요망!")
        elif avrg > total_avrg and std_dev <sd:
            print("성적도 평균 이상이고 학생들의 실력 차이도 크지 않다.")

    def get_evaluation(self, total_avrg, sd = 20):  #8
        print('*' * 50)
        print('{} 반 성적 분석 결과'.format(self.year_class))
        print(
        "{0}반의 평균은 {1}점이고 분산은 {2}이며 따라서 표준편차는 {3}이다".format(
            self.year_class,
            self.get_average(),
            self.get_variance(),
            self.get_standard_deviation()))
        print('*' * 50)
        print('{} 반 종합 평가'.format(self.year_class)) 
        print('*' * 50) 
        self.evaluate_class(total_avrg, sd)


evaluate_class() 메서드는 주어진 평균, 전체 평균, 표준편차를 이용해 학급의 성적을 평가합니다(#7). get_evaluation() 메서드는 최종적으로 학급의 평균, 분산, 표준편차, 종합 평가를 출력합니다(#8).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.