본문 바로가기
프로그램

[파이썬] 문제 : 학생의 학생별 평균, 과목별 평균, 과목별 1등 학생 분석

by 오디세이99 2022. 12. 5.
728x90
반응형

student = []
subject = {}
first = {}
for i in range(5):
    tmp = input()
    # tmp = data[i]  # 입력이 많아서 input으로 하기 뒤찮을때 상용(위 input 을 주석처리)
    lst_tmp = tmp.split(',')
    
    d_sum = 0                                          # 학생별 평균
    for j in range(1, len(lst_tmp), 2):
        d_sum += int(lst_tmp[j])
    d_avg = d_sum/(len(lst_tmp)/2)
    student.append(d_avg)
    
    for j in range(0, len(lst_tmp), 2):                # 과목별 평균(합계)
        if lst_tmp[j] in subject:
            subject[lst_tmp[j]] += int(lst_tmp[j+1])
        else:
            subject[lst_tmp[j]] = int(lst_tmp[j+1])
    
    for j in range(0, len(lst_tmp), 2):                # 과목별 1등 학색
        if j == 0:
            s_name = 'student1'
        else:
            s_name = 'student' + str(int(i+1))
            
        if lst_tmp[j] in first:
            if first[lst_tmp[j]][1] < int(lst_tmp[j+1]):
                first[lst_tmp[j]] = [s_name, int(lst_tmp[j+1])]
        else:
            first[lst_tmp[j]] = [s_name, int(lst_tmp[j+1])]
    
    
print("Average per student : ", end='')
for i in range(len(student)):
    print(f"student{i+1}- {round(student[i],1)}", end='')
    if i < len(student)-1:
        print(' ', end='')
print()

print("Average per subject : ", end='')
for i, key in enumerate(subject.keys()):
    print(f"{key}- {round(subject[key]/5,1)}", end='')
    if i < len(subject.keys())-1:
        print(' ', end='')
print()

print("First : ", end='')
for i, key in enumerate(first.keys()):
    print(f"{key} - {first[key][0]}", end=' ')
    if i < len(first.keys()):
        print(' ',end='')
print()

결과

korean,80,english,23,math,95,social,55,science,72
english,82,korean,87,math,12,social,55,science,74
korean,83,science,81,math,62,social,66,english,75
math,84,english,84,korean,75,social,44,science,76
korean,85,english,88,math,29,science,13,social,78
Average per student : student1- 65.0 student2- 62.0 student3- 73.4 student4- 72.6 student5- 58.6
Average per subject : korean- 82.0 english- 70.4 math- 56.4 social- 59.6 science- 63.2
First : korean - student2  english - student5  math - student1  social - student5  science - student3
728x90
반응형

댓글