Menu



Manage

Cord > Study_Python 전체 다운로드
Study_Python > make/11week2.py Lines 63 | 2.0 KB
다운로드

                        # 11주차
scores = {} #점수 딕셔너리 생성

with open("c:/Users/-/Desktop/py_Project/list.txt", 'r') as f:

    while True :
        line = f.readline()
        if not line :
            break

        data = line.strip().split(',')
        if len(data) == 4 :
            scores[data[0]] = [int(data[1]), int(data[2]), int(data[3])]
            avg = (int(data[1])+int(data[2])+int(data[3])) / 3
            print(data[0], scores[data[0]], f"평균 = {avg}")

"""
# 수업 방법
import os

path_name = "c:/-/"
full_filename = path_name + "/list.txt"

if nont os.path.isfile(full_filename) : #os모듈이 파일 체크해줌
    print("파일이 존재하지 않음")
else :
    pass

    students = []
    with open(full_filename, 'r') as f:
        #r.readline() -> 한줄씩 r.readlines() -> 전체 불러와서 한줄씩 r.read() 한단어 굳이?
        
        while True :
        line = f.readline().strip() #"ksh, 10, 20, 30"
        if not line:
            break
        #"ksh, 10, 20, 30"
        line.split(",") #['ksh', '10', '20', '30'] = stroke
        
        if len(datas) != 4:
         continue
        try :
            stu = {}
            stu['name'] = datas[0].strip()
            stu['kor'] = int(datas[1])
            stu['eng'] = int(datas[2])
            stu['mat'] = int(datas[3])
            #점수값이 이상하게 나온 경우 처리방법은 나오게 할 것 여기서는 가장 편한 방법 진행
            students.append(stu)    #리스트에 딕셔너리를 취가 -> 반대는 불가능
        except :
            pass
            
for stu in students:
    #avg = sum([stu['kor'], stu['eng'],stu['mat']])/3 -> 과목 추가시 식이 바뀜 pass
    summary = [stu[key] for key in stu.keys() if key != 'name']
    avg = sum(summary) / len(summary)
    
    #출력도 for문으로
    sub = [ str(stu[key]) for key in stu.keys()] #다 문자ㅣ열로 만들어버림
    line = ",".join + f" 평균={avg:.2f}"
    print(line)
            
"""