19.2 사각형으로 별 출력하기
이제 중첩된 반복문을 사용하여 5×5 사각형 형태로 별을 그려보겠습니다. 다음 내용을 IDLE의 소스 코드 편집 창에 입력한 뒤 실행해보세요.
star_square.py
for i in range(5): # 5번 반복. 바깥쪽 루프는 세로 방향 for j in range(5): # 5번 반복. 안쪽 루프는 가로 방향 print('*', end='') # 별 출력. end에 ''를 지정하여 줄바꿈을 하지 않음 print() # 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감 # (print는 출력 후 기본적으로 다음 줄로 넘어감)
실행 결과
***** ***** ***** ***** *****
먼저 안쪽의 for j in range(5): 반복문에서 print로 별을 그리면 다음과 같이 가로 방향으로 별이 나열됩니다.
이 방식은 print에 end=''를 지정했을 때 줄바꿈이 되지 않고 오른쪽 방향으로 문자가 계속 붙는 특성을 이용한 것입니다.
바깥쪽의 for i in range(5): 반복문은 안쪽 for j in range(5): 반복문을 실행하면서 별을 5개씩 그립니다. 그리고 print()를 사용하여 줄바꿈을 한 뒤 다시 별 5개씩 그립니다(print는 기본적으로 end='\n' 상태이므로 아무것도 지정하지 않아도 \n은 출력됨). 이렇게 반복하면서 별을 5개씩 5줄 쌓아 나갑니다.
IDLE 및 콘솔에서는 위에서 아래로 출력되기 때문에 별을 그릴 때도 아래 방향으로 그리게 됩니다.
19.2.1 사각형 모양 바꾸기
이제 for 반복문의 조건식을 수정하여 사각형의 모양을 바꿔보겠습니다.
star_rectangle.py
for i in range(3): # 3번 반복. 세로 방향 for j in range(7): # 7번 반복. 가로 방향 print('*', end='') # 별 출력. end에 ''를 지정하여 줄바꿈을 하지 않음 print() # 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감 # (print는 출력 후 기본적으로 다음 줄로 넘어감)
******* ******* *******
안쪽 반복문은 7번 반복하고, 바깥쪽 반복문은 3번 반복하도록 수정하였습니다. 즉, 7×3 크기의 사각형을 그립니다. 각자 반복문 조건식의 숫자를 바꿔서 다양한 크기로 출력해보세요.