본문 바로가기
빅데이터 실습 공부/파이썬 데이터 분석

예제 1 : 학생 성적 산출 프로그램

by 데이터 분석가가 되자 2024. 6. 30.
반응형

학생 성적 산출 프로그램 조건 3가지

조건 1) 이름(키)과 과목별 점수(값)가 담긴 딕셔너리 자료형을 만들기

조건 2) 각 학생별 평균 점수 구하기

조건 3) 국어, 영어, 수학 과목별 평균점수 구하기

이름 국어 점수 영어 점수 수학 점수
가은 82 97 88
나영 92 87 82
다래 84 77 94

우선 학생들의 점수를 담을 딕셔너리(score)를 선언한 후 학생의 이름을 키로,

학생의 점수를 리스트에 담아 값으로 쌍을 이뤄 딕셔너리에 추가합니다.

 

scores = {"가은": [82, 97, 88], "나영":[92,87,82], "다래":[84, 77, 94]}
print(scores)

 

 

학생들의 평균 점수를 구하기 위해 먼저 전체 점수를 계산합니다.

 

학생의 이름(키)을 통해 점수(값)를 받습니다.

 

그리고 리스트의 합계를 구하는 sum() 함수를 사용하여 전체 점수를 계산합니다.

 

계산된 전체 점수를 전체 과목 수(리스트 길이를 구하는 len() 함수를 사용)로 나눠 평균 점수를 반환합니다.

 

scores = {"가은": [82, 97, 88], "나영":[92,87,82], "다래":[84, 77, 94]}
score1 = scores["가은"]
print("가은의 평균 점수 : ", sum(score1) / len(score1))
score2 = scores["나영"]
print("나영의 평균 점수 : ", sum(score2) / len(score2))
score3 = scores["다래"]
print("다래의 평균 점수 : ", sum(score3) / len(score3))

 

딕셔너리 값에 있는 점수 리스트에서 각 원소를 하나씩 받아 과목별 전체 점수를 먼저 구합니다.

 

values() 함수를 통해 학생들의 점수를 scores_list 리스트에 담아 2차원 리스트를 만듭니다.

 

scores_list[0]에는 '가은의 점수 리스트', scores_list[1]에는 '나영의 점수 리스트', 

scores_list[2]에는 '다래의 점수 리스트가 위치하고 각 리스트에는 [국어, 영어, 수학] 순으로 점수가 위치합니다.

 

그래서 전체 국어 점수를 구하기 위해서는 각 학생의 점수 리스트에서 '0번째 인덱스'를 불러와 더해주면 됩니다.

 

마찬가지로 영어는 첫 번째 인덱스, 수학은 두 번째 인덱스를 통해 얻을 수 있습니다.

 

과목별 전체 점수를 구한 후 학생의 수로 나누면 각 과목별 평균 점수를 구할 수 있습니다.

 

scores = {"가은": [82, 97, 88], "나영":[92,87,82], "다래":[84, 77, 94]}
scores_list = list(scores.values())
kor = scores_list[0][0] + scores_list[1][0] + scores_list[2][0]
eng = scores_list[0][1] + scores_list[1][1] + scores_list[2][1]
mat = scores_list[0][2] + scores_list[1][2] + scores_list[2][2]
print("국어 평균 점수 : ", kor / 3)
print("영어 평균 점수 : ", eng / 3)
print("수학 평균 점수 : ", mat / 3)

반응형