2015-02-05 4 views
0

이 코드의 경우 전체 평균을 얻으려고합니다. 나는 파일을 열어 사전에서 모든 문자와 줄을 제거하여 각 학생의 점수 만 얻습니다. 그런 다음 파일의 합계를 가져온 다음 길이로 나누지 만 오류가 발생합니다.사전 결과에서 평균을 얻으려고 시도합니다.

with open('classtwo.csv', 'r', newline='') as csv_file: 
     newfile = (str.strip("A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z") for str in csv_file if str.strip("A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z")) 
     file = [line.strip() for line in newfile if line.strip()] 
     average = (sum(file)/len(file)) 
     print(average)  

사람이 오류를 해결하는 방법을 알고 : 여기

average = (sum(file)/len(file)) 
TypeError: unsupported operand type(s) for +: 'int' and 'str' 

코드인가?

+0

이것은 중복이 아닙니다. 오류는 동일하지만이 질문은'sum' 함수를 통해 오류를 암시 적으로 가져옵니다. –

+0

'str.strip()'호출에서 모든 쉼표가 필요하지는 않습니다. –

+1

@ HannesOvrén : 동의하고,'sum()'을 사용하여 같은 오류 메시지로 다시 질문을 던집니다. –

답변

0

file은 문자열 목록입니다. sum 함수에는 숫자가 필요합니다. 평균을 얻으려면 file의 각 항목을 숫자로 변환해야합니다.

file = [float(x) for x in file]

관련 문제