2017-04-18 1 views
-1

안녕하세요. 첫 번째 게시물이있어서 저는 파이썬/코딩에 매우 익숙합니다. 이 문제가있어 설명하는 방법을 잘 모르겠습니다. 본질적으로 "문자/숫자 목록"으로 가득 찬이 txt 파일에는 "5, 0, 10"및 "$, 20, 5"와 같은 과 "$, 20, 5"코드가 있으며 기본적으로 코드 블록이 있습니다. 각 행의 각 요소를 통해 공백으로 0을 반환하고 비 숫자로 -1을 반환합니다. 요소가 숫자 인 경우 숫자를 반환합니다. 지금, 문제는 어떻게 든 그 행을 편집하고 공백과 비 숫자를 반환 된 값 (0과 -1)으로 대체 한 다음 파이썬으로 솔직하게 뱉어 내야한다는 것입니다. 무슨 기능을 사용해야할지 멍청 아. 나는이 마인드 블록을 가지고 있으며, 내가해야 할 일을 정확히 알고 있지만 어떻게해야하는지 잘 모른다. 어떻게 든 반환 된 값을 빈 자리와 비 숫자를 뺀 자리에 0과 -1이있는 원래 숫자가있는 목록에 추가해야합니다. 죄송합니다 다시 이것은 내 첫 번째 게시물이며, 아마 끔찍한 서식, 끔찍한 서식이 긁힌.텍스트 파일의 목록에 새로운 값을 추가하십시오.

def parseVote(s): 
    s = s.strip() 
    if len(s) == 0: 
     return 0 
    elif s.isdigit() == True: 
     return s 
    else: 
     return -1 

print(parseVote()) 
+0

여기 게시물에 코드를 붙여 넣습니다. – JackPoint

+0

내 게시물을 편집하고 코드를 추가했습니다. –

답변

0

나는 이것이 귀하의 요구 사항을 충족시킬 것이라고 생각합니다. 이것은 스트립 기능을 사용하는 것보다 더 긴 방법 일 수 있지만, 나는 단순함을 위해 갈 것이라고 생각했다. 가장 중요한 것은 목록 목록을 통한 루프와 각 목록의 각 요소에 대한 중첩 루프입니다. 그러나 요소가 비어있는 경우 (결과 0) 숫자가 0 (결과 0) 인 경우 동일한 결과를 얻는 것으로 나타났습니다. 문제 일 수 있습니다.

with open(r'C:\Program Files\s.txt') as s_file: 
    s = [] 
    for line in s_file: 
     stripped_line = line.strip('\n') 
     s.append(stripped_line.split(',')) 

s_file.close() 
#s = [['5','0','10'],['$','20','','5']] 

def parseVote(s): 

    new_s = []   
    for s_list in s: 

     s_transform = []     
     for elem in s_list: 

      if len(elem) == 0: 
       s_transform.append(0)    
      elif elem.isdigit() == True: 
       s_transform.append(elem)    
      else: 
       s_transform.append(-1) 

     new_s.append(s_transform) 

    return new_s 

new_s = parseVote(s) 
print(new_s) 

출력 : 우리는 모양과 올바른 방향을 알려줄 수

[['5', '0', '10'], [-1, '20', 0, '5']] 
+0

와우 코드 블록은 실제로 읽을 수 있습니다. 책을 읽는 것과 같습니다. 더 많이 코딩하면 더 관심을 갖습니다. 도움을 주셔서 대단히 감사합니다. 그것이 작동하는지 확인, 난 그냥 txt 파일을 가져올 필요가 있다고 생각합니다. 다시 한번 이것이 정말로 도움이되어 주셔서 감사합니다. –

+0

@ Jack Jock. 행 인스턴스가있는 쉼표로 구분 된 텍스트 파일을 가져 오는 방법으로 코드 블록을 편집했습니다. – AF2k15

+0

감사합니다. –