2017-12-01 6 views
0

파일의 정수를 요약하는 함수를 작성하고 있습니다.파일에서 정수 추가

def sum_integers_from_file(file_name): 
    try: 
     file = open(name) 
     total = 0 
     for i in file: 
      total += int(i) 
     file.close() 
     return total 
    except: 
     print "error" 

파일 foo.txt :

1234

기능이 1234을 반환
여기에 코드입니다.

total += int(i)은 모든 정수를 더합니까?

+0

들여 쓰기를 수정하십시오! – mrCarnivore

+0

파일에 개행 문자가없고 문자로 나누지 않으면 계산은 0 + 1234입니다. –

+0

for i in file은 chars가 아닌 파일의 텍스트 행을 반복합니다. PS,'with' 문으로 파일 열기 –

답변

2

과 같은 일을 할 수있는 새로운 라인으로 이동하는 방법 1,2,3,4를 추가하려면 파일을 with 문으로 읽으십시오. 그러면 파일을 닫을 책임이 줄어들며 짧아집니다! 작동 방식 :

def sum_integers_from_file(file_name): 
    try: 
     with open(file_name, 'r') as f: 
      s = f.read() 

     total = 0 
     for char in s: 
      total += int(char) 
     return total 
    except: 
     print("error") 
2

파일에는 한 줄짜리 파일이 있습니다.

각 줄에서 모든 int를 추가하고 있습니다.

당신은 또한

, 당신은 그것은 매우에 추천이

with open(name) as f: 
     return sum(int(line) for line in f) 
+0

저자가 그럴 필요가 없습니다. 각 자릿수/문자는 정수로 해석 될 수 있습니다 ... – mrCarnivore

+0

질문은 그것이 반환 된 이유를 묻습니다. 예상 한 것을 준 적이 없다. –

+0

좋아. – mrCarnivore