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

조회수 3591회

제가 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)

  • (•́ ✖ •̀)
    알 수 없는 사용자

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.3.22 20:48
    • 아마도 "\t".join으로 합쳐서 그런게 아닐까요. " ".join이나 "".join을 실험해보시면 어떨까 합니다. 알 수 없는 사용자 2016.3.22 22:34
    • 탭을 넣었는데요. 숫자의 길이가 다른경우에도 잘 맞춰서 표시되도록 탭을 넣은겁니다. 무조건 한자리 숫자만 나온다면 탭 대신 다른걸 쓰셔도 될 것 같네요. 정토드 2016.3.23 00:04

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)