#!/usr/bin/env python # coding: utf-8 # # Chapter 16 Exam Statistics # # # In[2]: # 01 성적을 살펴봅시다! grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5] print ("Grades:", grades) # In[4]: # 02 성적 출력하기 grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5] def print_grades(grades): for e in grades: print (e) print_grades(grades) # In[5]: # 03 리뷰 print ("Let's compute some stats!") # In[7]: # 04 점수의 총합 grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5] def grades_sum(scores): total = 0 for score in scores: total += score return total print (grades_sum(grades)) # In[9]: # 05 평균값 계산하기 grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5] def grades_sum(scores): total = 0 for score in scores: total += score return total def grades_average(grades): num = len(grades) return grades_sum(grades) * 1.0 / num print (grades_average(grades)) # In[10]: # 06 리뷰 print ("Time to conquer the variance!") # In[12]: # 07 분산 grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5] def print_grades(grades): for grade in grades: print (grade) def grades_sum(grades): total = 0 for grade in grades: total += grade return (total) def grades_average(grades): sum_of_grades = grades_sum(grades) average = sum_of_grades * 1.0/ len(grades) return (average) def grades_variance(grades, average): variance = 0.0 for grade in grades: variance += (grade - average) ** 2 return variance / len(grades) print (grades_variance(grades, grades_average(grades))) # 분산(variance)은 편차 제곱의 평균 # 편차(deviation)는 평균과 차이 (즉, 평균에서 얼마나 떨어져 있는지 값) # In[18]: # 08 표준 편차 grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5] def print_grades(grades): for grade in grades: print (grade) def grades_sum(grades): total = 0 for grade in grades: total += grade return (total) def grades_average(grades): sum_of_grades = grades_sum(grades) average = sum_of_grades * 1.0/ len(grades) return (average) def grades_variance(grades, average): variance = 0.0 for grade in grades: variance += (grade - average) ** 2 return variance / len(grades) def grades_std_deviation(variance): return variance ** 0.5 print (grades_std_deviation(grades_variance(grades, grades_average(grades)))) # 표준편차(SD, standard deviation): 분산(variance)의 제곱근 # In[19]: # 09 리뷰 grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5] def print_grades(grades): for grade in grades: print (grade) def grades_sum(grades): total = 0 for grade in grades: total += grade return total def grades_average(grades): sum_of_grades = grades_sum(grades) average = sum_of_grades * 1.0/ len(grades) return average def grades_variance(grades, average): variance = 0.0 for grade in grades: variance += (grade - average) ** 2 return variance / len(grades) def grades_std_deviation(variance): return variance ** 0.5 print_grades(grades) print (grades_sum(grades)) print (grades_average(grades)) print (grades_variance(grades, grades_average(grades))) print (grades_std_deviation(grades_variance(grades, grades_average(grades)))) grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5] print ("Grades:", grades)