파이썬 중첩루프 기초 질문이요!
조회수 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 + '?')
댓글 입력