2016-11-01 3 views
-2

저는 현재 프로그래밍 과정을 시작하고 있으며 기능 수정에 도움이 필요합니다. 이 목록의 모든 요소는 문자열이 아닌 정수가되어야합니다. 그리고 이렇게하려면 함수에서 한 행을 바꿔야하지만 어떤 선을 바꿀지 전혀 모르겠습니다! 어떤 도움이라도 대단히 감사하겠습니다. 라인 문자열이있는 경우 오류를 방지하기 위해목록의 모든 요소를 ​​정수로 사용해야합니다.

def read_magic_square(filename): 
    """ 
    Read values from a file into a 2D list 

    Parameter: 
    filename: the name of the file 

    Returns a 2D list of integer values read. 
    """ 

    infile = open(filename, "rt") 
    square = [] # start with an empty list 

    for line in infile: # read text from file 
     row = [] 
     numbers = line.split() 

     # Loop through the list of numbers. 
     # Append each number to the row. 
     for num in numbers: 
      row.append(num) 

     if len(row) > 0: # Don't count blank lines 
      square.append(row) # Append the row to the 2D list 

    return square 
+0

'row.append (int (num))'. – Evert

+0

코드 블록 내에 포맷 된 경우 전체 코드를 확인하십시오. 처음 두 줄은 그 바깥쪽에 있으므로 코드를 읽기가 더 어렵게 만듭니다. – Evert

답변

1

, 당신은 이되고, 첨부 된 라인을 변경할 수 있습니다 (당신은 당신이 원하는대로 될하기 위해 invalid_replacement을 변경할 수 있습니다, 여기에 내가 0으로 넣어) :

invalid_replacement = 0 
try: 
    row.append(int(num)) 
except: 
    row.append(invalid_replacement) 
관련 문제