파이썬 중첩루프 기초 질문이요!

조회수 1157회
for i in range(0,7) :
  for j in range(0, i):
    print(j, end='')
  print()

코드를 이렇게 짰는데요 이러면

0
01
012
0123
01234
012345

이렇게 결과가 나옵니다.

저 모양이랑 대칭되게 나오려면 어떻게 해야 할까요?

     0
    01
   012
  0123
 01234
012345

2 답변

  • 첫번째 모양은 그냥 숫자를 출력하고 줄바꿈을 하면 자동으로 작성했으니

    두번째 모양은 원하는 갯수만큼 공백을 먼저 출력한 다음에 줄바꿈 하지 않고 첫번째 모양 출력하듯이 하면 됩니다.

    공백을 채우는거니까 잘 되고 있는건지 눈으로 확인하기가 조금 어려울것같다 싶으시면

    012345
    01234
    0123
    012
    01
    0
    

    를 먼저 해보세요

    그 다음에는 출력하는 숫자를 공백으로 바꾸고 위의 코드와 합치기만 하면 됩니다.

    • 출력하는 숫자를 어떻게 공백으로 바꾸는지 모르겠어요ㅠㅠ 공백이랑 같이 출력하려고 하니 숫자들 사이에도 같이 공백이 생겨서...(ex) 0 1 2 3 4여기 숫자들 사이사이마다 공백이 같이 생겨요 알 수 없는 사용자 2020.6.13 15:29
    • for j 안에서 다 해결하려고 하시면 안되고 for문은 하나 더 쓰셔야 할거예요 HIAOAIH 2020.6.13 16:21
  • 지금 직면하고 계신 것은 left padding이라고 하는 케케묵은 문제입니다. 검색해 보세요.
    뭐 여러 가지 상황이 있을 수 있습니다.

    • 총 7행을 출력해야 하지만 길이는 15자로 고정해야 할 경우
    • 길이는 15자로 고정이지만 최대 17자까지 나올 수 있는 경우
    • 중간중간에 ------ 절취선 ------ 같은걸 그어줘야 할 경우

    하지만 주어진 문제는 그렇게까지 복잡한 상황을 상정하는 것 같지 않으니... 쉽게 가시죠.
    재미있게도 파이썬은 이런 게 됩니다.

    for x in range(0, 7) :
        y = 7 - x
        print(' ' * y + '?')
    

    이미지

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

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

(ಠ_ಠ)
(ಠ‿ಠ)