2016-07-17 2 views
0

저는 Python을 처음 사용하고 있습니다. 저는 tic tac toe 게임을위한 프로그램을 만들고 있습니다. 나중에 보드를 조작 할 수 있도록 배열로 만들었습니다. 이 인쇄 할 때Python-괄호, 인용문 및 쉼표를 제거하는 방법

a=[["-","-","-"],["-","-","-"],["-","-","-"]] 
def ttt(a): 
for x in range (0,3): 
     print (a[x]) 
z=ttt(a) 
print(z) 

그러나, 그것은 인쇄 : 나는 그것을 바로 인쇄하도록 브라켓, 견적, 쉼표를 제거 할 수 있습니까

['-', '-', '-'] 
['-', '-', '-'] 
['-', '-', '-'] 

:

- - - 
- - - 
- - - 

감사합니다! 당신은이 작은 변경을 할 수 있습니다

a=[["-","-","-"],["-","-","-"],["-","-","-"]] 
def ttt(a): 
    for x in range (0,3): 
     print(" ".join(a[x])) 
z=ttt(a) 

- - - 
- - - 
- - - 
+0

들여 쓰기가 올바르게; 당신의 문제를 해결할 수는 없겠지만, 프로그램의 기능을 위해서 올바르게 들여 쓰는 것이 매우 중요합니다. – Li357

+0

'' 'join (a [x])'이 수행합니다. –

+0

'print (* a [x]) ' – zondo

답변

0

귀하는 문자열 후 인쇄하게하는 공간으로 하위 목록을 가입 할 수 있습니다. 귀하의 경험 수준이 잘못되었다고 생각하면 죄송합니다.

  • 코드를 올바르게 들여 쓸 필요가 있습니다. 파이썬은 다른 언어의 중괄호 대신에 들여 쓰기를 사용하여 함수의 끝과 루프를 결정합니다.

  • 인쇄 위치를 결정하십시오. ttt을 호출하면 게임 보드가 인쇄되고 아무 값도 반환되지 않습니다. ttt을 호출하면 인쇄 할 여러 줄을 반환 할 것이므로 인쇄 자체를해서는 안됩니다. 즉, tttprint_ttt_board(board) 또는 format_ttt_board(board)을 의미하는지 결정하십시오. 지금은 함수에서 반환 값을 출력하고 값을 반환하지 않습니다. z=ttt(a)은 반환 값이 없기 때문에 항상 None을 z로 설정하고 print(z)은 아무 작업도 수행하지 않습니다.

  • 개별 값을 사용하십시오. 지금 당장은 최상위 배열 (행당 하나의 배열)을 반복하여 인쇄하고 있습니다. 즉, 첫 번째 행은 배열 ["-", "-", "-"]입니다. 루프가 첫 번째 행인 배열을 찾은 다음 두 번째 행을 반복 또는 결합하려고합니다. 현재 배열을 출력하고 있습니다. 파이썬은 편리한 디버깅 가능한 출력을 제공하므로 배열을 볼 수 있습니다.

  • 파이썬의 join() 메소드를 사용하십시오. 그것은 "배열 사이의 문자열 - 문자열"과 같은 것입니다. 조인 (the_array). print(a[x]) 대신 a[x]은 3 개의 문자열로 구성되며, print(" ".join(a[x])은 각 항목을 공백으로 구분하여 a[x]에 인쇄하는 것을 의미합니다.

어딘가에서 시작해야하며 포기하지 않아야합니다. 나중에이 코드를 시도 할 때 다른 조언이있을 것입니다 : def을 맨 위에두고 변수와 함수의 이름을 지정하여 의미가 명확하게 지정하고 행 인덱스 대신 행을 반복하는 for 루프를 사용하십시오. 이것은 모두 코드를 실행하고 의도를 명확하게하는 것을 목표로합니다. 누구든지 코드를 읽습니다.

1

:

0
from __future__ import print_function 

def print_board(a): 
    for row in board: 
     for char in row: 
      print(' {}'.format(char), end='') 
     print('') 

board = [["-","-","-"],["-","-","-"],["-","-","-"]] 
print_board(board) 
관련 문제