반응형
Q>
아래의 표는 한 학과의 성적표이다. 이를 CSV 파일 형식으로 저장하시오.
그리고 위에 CSV 파일을 읽어들여서 각 학생들의 총점, 평균 점수를 계산하여 출력하는 프로그램을 작성하시오.
이름 | 국어 | 영어 | 수학 | 과학 |
철수 | 80 | 92 | 90 | 88 |
영희 | 82 | 80 | 77 | 82 |
민수 | 91 | 72 | 62 | 70 |
지현 | 77 | 64 | 80 | 64 |
A>
grade_dic = {
'이름' : ['철수', '영희', '민수', '지현'],
'국어' : [80, 82, 91, 77],
'영어' : [92, 80, 72, 64],
'수학' : [90, 77, 62, 80],
'과학' : [88, 82, 70, 64]
}
tpl = '{0},{1},{2},{3},{4}\n'
keys = list(grade_dic.keys())
p = ','
title = p.join(keys)
with open('성적표.csv', 'w', encoding='euc-kr') as f:
f.write(title + '\n')
for i in range(len(grade_dic.values())-1):
tmp = tpl.format(grade_dic['이름'][i], grade_dic['국어'][i],
grade_dic['영어'][i], grade_dic['수학'][i],
grade_dic['과학'][i])
f.write(tmp)
print('csv 파일을 만들었습니다.')
print('-' * 10)
a = []
with open('성적표.csv', 'r') as reader:
for line in reader:
vol = line.strip().split(',')
a.append(vol)
import itertools
b = list(itertools.chain.from_iterable(a))
stu1 = map(int, b[6:10])
stu2 = map(int, b[11:15])
stu3 = map(int, b[16:20])
stu4 = map(int, b[21:])
print('{0}의 평균 점수는 {1}점 입니다.'.format(b[5], sum(list(stu1)) / len(b[6:10])))
print('{0}의 평균 점수는 {1}점 입니다.'.format(b[10], sum(list(stu2)) / len(b[11:15])))
print('{0}의 평균 점수는 {1}점 입니다.'.format(b[15], sum(list(stu3)) / len(b[16:20])))
print('{0}의 평균 점수는 {1}점 입니다.'.format(b[20], sum(list(stu4)) / len(b[21:])))
O>
csv 파일을 만들었습니다.
----------
철수의 평균 점수는 87.5점 입니다.
영희의 평균 점수는 80.25점 입니다.
민수의 평균 점수는 73.75점 입니다.
지현의 평균 점수는 71.25점 입니다.
Process finished with exit code 0
반응형
'Python_Matter > Solve' 카테고리의 다른 글
Python Learn the basics Quiz 25 (0) | 2019.04.13 |
---|---|
Python Learn the basics Quiz 24 (0) | 2019.04.13 |
Python Learn the basics Quiz 22 (0) | 2019.03.30 |
Python Learn the basics Quiz 21 (0) | 2019.03.30 |
Python Learn the basics Quiz 20 (0) | 2019.03.28 |