파이썬에서 배열 출력 관련 질문합니다
조회수 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
댓글 입력