728x90
반응형

student = [{'no':1, 'name':'길동01', 'kor':62, 'eng':75, 'mat':42}
,{'no':2, 'name':'길동02', 'kor':97, 'eng':89, 'mat':63}
,{'no':3, 'name':'길동03', 'kor':95, 'eng':76, 'mat':64}
,{'no':4, 'name':'길동04', 'kor':70, 'eng':86, 'mat':79}
]
def cal_Score(sc): # score를 구분하는 함수. (문제에 정확한 정의가 없음)
rtn = ''
if sc >= 90:
rtn = 'A'
elif sc >= 80 and sc < 90:
rtn = 'B'
elif sc >= 70 and sc < 80:
rtn = 'C'
elif sc >= 60 and sc < 70:
rtn = 'D'
elif sc >= 50 and sc < 60:
rtn = 'E'
elif sc < 60:
rtn = 'F'
return rtn
d_sum = [] # 각 학생마다 합계 저장 리스트. 나중에 출력(합계,평균,최고,최저 에서 같은 방법 사용하기 위해서)
d_avg = [] # 각 학생마다 평균 저정 리스트
d_kor = []
d_eng = []
d_mat = []
print(f"no name kor eng mat tot avg score") # 출력 제목
print('-'*66) # '-'를 66개 출력
for i in range(len(student)): # 각 학생의 계산을 위한 반복문, .len(no) 하면 학생수
p_sum = student[i]['kor'] + student[i]['eng'] + student[i]['mat'] # 한 학생의 성적 합계
p_avg = p_sum / 3 # 한 학생의 평균
score = cal_Score(p_avg) # score 구함
print(f"{student[i]['no']:2d} {student[i]['name']:4} {student[i]['kor']:5d} {student[i]['eng']:7d} {student[i]['mat']:7d} {p_sum:8d} {p_avg:3.2f} {score:}")
d_sum.append(p_sum) # 학생의 합계 리스트에 보관
d_avg.append(p_avg) # 학생의 평균 리스트에 보관
d_kor.append(student[i]['kor'])
d_eng.append(student[i]['eng'])
d_mat.append(student[i]['mat'])
# d_kor = student['kor']
# d_eng = student['eng']
# d_mat = student['mat']
print('-'*66)
print(f"{0:2d} {'합계':4} {sum(d_kor):5d} {sum(d_eng):7d} {sum(d_mat):7d} {sum(d_sum):8d} {sum(d_avg):3.2f}")
cnt = len(no)
print(f"{0:2d} {'평균':4} {sum(d_kor)//cnt:5d} {sum(d_eng)//cnt:7d} {sum(d_mat)//cnt:7d} {sum(d_sum)//cnt:8d} {sum(d_avg)//cnt:3.2f}")
print(f"{0:2d} {'최고':4} {max(d_kor):5d} {max(d_eng):7d} {max(d_mat):7d} {max(d_sum):8d} {max(d_avg):3.2f}")
print(f"{0:2d} {'최저':4} {min(d_kor):5d} {min(d_eng):7d} {min(d_mat):7d} {min(d_sum):8d} {min(d_avg):3.2f}")

728x90
반응형
'프로그램' 카테고리의 다른 글
| [파이썬] 문제 : '오늘은 10월 date' 출력 함수 (0) | 2023.04.09 |
|---|---|
| [파이썬] 문제 : score에 따른 성적(A,B,C..) 함수 (0) | 2023.04.09 |
| [파이썬] 문제 : 알파벳 소문자와 숫자로 랜덤하게 3글자 패스워드 만들기 (0) | 2023.04.08 |
| [파이썬] 문제 : pandas 학생 성적 처리(index, groupby, pivot, mean, median, count) (0) | 2023.04.08 |
| [파이썬] 문제 : 성적 계산하기 (0) | 2023.04.08 |
댓글