[ Python ] 학급 학생들의 성적 산출 프로그램
어느 학급의 학생 수는 34명이고, 국어, 영어, 수학 시험을 봤을 때, 영어 점수 중 최고점과 평균이 가장 높은 학생의 아이디, 평균값(정수)을 구해 출력하는 프로그램을 작성해보자.
학생들의 아이디는 stud1, stud2, ... stud34로 저장되며 각 과목별 점수는 0~100 사이의 랜덤값으로 저장함
import random
classdic = {}
for i in range(34):
classdic['stud'+str(i+1)] = [random.randint(0,100) for i in range(3)]
print(classdic, '\n')
jlist = list(classdic.values())
egrade=[]
for i in jlist:
egrade.append(i[1])
print('영어 점수:', egrade, '\n')
print('영어 점수 최고점 : %s\n'%(max(egrade)))
avglist = []
for k, e, m in jlist:
avg = (k+e+m)//3
avglist.append(avg)
print('평균 점수:', avglist, '\n')
for i,j in classdic.items():
sum1 = 0
for k in j:
sum1 += k
if sum1//3 == max(avglist):
print("아이디:", i, "평균:", sum1//3)
▶ classdic = {} : classdic라는 이름의 빈 디렉토리 생성
for i in range(34):
classdic['stud'+str(i+1)] = [random.randint(0,100) for i in range(3)]
print(classdic, '\n')
▶ for i in range(34) : 0부터 33까지 34번 반복함
▶ classdic['stud'+str(i+1)] : 0부터 33까지 반복하여 저장한 i 값을 'stud' 문자열 뒤에 출력함
▶ random.randint(0,100) for i in range(3) : 국어, 영어, 수학 3 과목을 0점부터 100점까지 랜덤으로 지정함
→ 각 학생마다 국어, 영어, 수학의 점수를 출력해 classdic에 저장
jlist = list(classdic.values())
▶ calssdic의 value 값들을 리스트로 생성해 jlist라는 변수에 저장함
egrade=[]
for i in jlist:
egrade.append(i[1])
print('영어 점수:', egrade, '\n')
print('영어 점수 최고점 : %s\n'%(max(egrade)))
▶ egrade = [] : 영어 점수가 들어가는 빈 리스트를 생성함
▶ egrade.append(i[1]) : jlist에서 1번 index의 값들을 egrade 리스트에 추가함
→ jlist의 0번 index는 국어, 1번 index는 영어, 2번 index는 수학 점수임
▶ max(egrade) : egrade 리스트에 저장된 값 중 최대값을 출력함
avglist = []
for k, e, m in jlist:
avg = (k+e+m)//3
avglist.append(avg)
print('평균 점수:', avglist, '\n')
▶ avglist = [] : 학생들의 평균 점수가 들어가는 빈 리스트를 생성함
▶ for k, e, m in jlist : jlist에서 국어(k), 영어(e), 수학(m) 점수를 가져옴
▶ avg = (k+e+m)//3 : 국어, 영어, 수학 점수를 3으로 나눈 값을 avg 변수에 저장함
▶ avglist.append(avg) : 위에서 구한 평균 값을 avglist에 추가함
for i,j in classdic.items():
sum1 = 0
for k in j:
sum1 += k
if sum1//3 == max(avglist):
print("아이디:", i, "평균:", sum1//3)
▶ sum1 = 0 : sum1의 값을 0으로 초기화 함
▶ 학생들의 세 과목 점수를 sum1에 저장
▶ sum1을 3으로 나눈 값이 avglist의 최대값과 같다면 최대값을 가진 학생의 아이디와 평균을 출력함