2017-11-27 3 views
1
def print_gameboard(gamestate): 
    for row in gamestate._gameboard: 
     for column in row: 
      if column == gamestate._NONE: 
       print('.', end = ' ') 
      else: 
       print(column, end = ' ') 
     print() 

내 함수의 각 라인의 단부로부터 공백을 제거한다. . . . (공백)
. . . . (공백)
. . . . (공백)
. . . . (공백)파이썬 출력되는 출력

각 줄의 끝 부분에서 공백을 제거하는 방법을 알아낼 수 없습니다. .rstrip()을 사용해 보았습니다. 그러나 각 사이에 공백이 필요합니다. ' (점)하지만 각 출력 행의 끝에는 공백을 사용할 수 없습니다.

+0

'rstrip ('\ n'). rstrip()'이 작동해야합니다. 줄 바꿈을 다시 입력하십시오. –

+2

스트립 또는 rstrip을 사용하면 문자 사이의 공백이 제거되지 않습니다. – Abhijeetk431

답변

0

이 간단한 변경을 시도

def print_gameboard(gamestate): 
    for row in gamestate._gameboard: 
     rowList = [] 
     for column in row:    
      if column == gamestate._NONE: 
       rowList.append('.')     
      else: 
       rowList.append(column) 
     str=' '.join(rowList) 
     print str.strip() 
1

대신 end와 장난, 그냥 조건문을 적용하는 동안 행을 가입 한 후 인쇄하는 것이 더 쉬울 수 있습니다

print('\n'.join(' '.join('.' if col == gamestate._NONE else col for col in row) for row in gamestate._gameboard) 
+0

확실히 좋은 일선 솔루션이지만 코드가 더 복잡해집니다. 나는 그들을 한 줄로 합칠 필요가 없다고 생각한다. – Sraw