파이썬에서 배열 출력 관련 질문합니다


제가 3x3마방진을 짜는 소스코드를 작성하였습니다. 그런데 출력결과가 []를 포함한 식으로 나오게 됩니다.

8 1 6

3 5 7

4 9 2

어떻게하면 이러한 형식으로 출력이 될가요?

def Printsquare(m):
    if m%2!=0:
        Magic =[[0 for i in range(m)] for j in range(m)]
        r=0;
        c=m/2;
        for i in range(1,m*m+1):
            Magic[r][c]= i
            br = r+1
            bc = c+1
            r=(r+m-1)%m
            c=(c+1)%m

            if Magic[r][c]!=0:
                r=br
                c=bc-1
    for row in Magic:
        print row

Printsquare(3)

  • 2016년 03월 22일에 작성됨

조회수 499


1 답변


좋아요
1
싫어요
채택취소하기

"\t".join([str(num) for num in row])를 이용하시면 되겠네요.

def Printsquare(m):
    if m%2!=0:
        Magic =[[0 for i in range(m)] for j in range(m)]
        r=0;
        c=m/2;
        for i in range(1,m*m+1):
            Magic[r][c]= i
            br = r+1
            bc = c+1
            r=(r+m-1)%m
            c=(c+1)%m

            if Magic[r][c]!=0:
                r=br
                c=bc-1
    for row in Magic:
      print("\t".join([str(num) for num in row]))
Printsquare(3)

join과 관련된 자세한 내용은 다음 링크를 참고하세요. http://tryhelloworld.co.kr/courses/파이썬-입문/lessons/list와-문자열

  • 2016년 03월 22일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

  • 감사합니다 근데 한가지 궁금한점이 있는데 출력을 하게 되면 숫자와 숫자 간에 탭 누른것마냥 너비가 넓습니다 이건 어떻게 해야하나요??    MaseKor   2016.3.22 20:48     
  • 아마도 "\t".join으로 합쳐서 그런게 아닐까요. " ".join이나 "".join을 실험해보시면 어떨까 합니다.    Leonardo YongUk Kim   2016.3.22 22:34     
  • 탭을 넣었는데요. 숫자의 길이가 다른경우에도 잘 맞춰서 표시되도록 탭을 넣은겁니다. 무조건 한자리 숫자만 나온다면 탭 대신 다른걸 쓰셔도 될 것 같네요.    정두식   2016.3.23 00:04     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close