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로 별을 그리면 다음과 같이 가로 방향으로 별이 나열됩니다.

그림 19-3 반복문 j
그림 ‎19 3 반복문 j

이 방식은 printend=''을 지정했을 때 줄바꿈이 되지 않고 오른쪽 방향으로 문자가 계속 붙는 특성을 이용한 것입니다.

바깥쪽의 for i in range(5): 반복문은 안쪽 for j in range(5): 반복문을 실행하면서 별을 5개씩 그립니다. 그리고 print()를 사용하여 줄바꿈을 한 뒤 다시 별 5개씩 그립니다(print는 기본적으로 end='\n' 상태이므로 아무것도 지정하지 않아도 \n은 출력됨). 이렇게 반복하면서 별을 5개씩 5줄 쌓아 나갑니다.

그림 19-4 반복문 i
그림 ‎19 4 반복문 i

IDLE 및 콘솔에서는 위에서 아래로 출력되기 때문에 별을 그릴 때도 아래 방향으로 그리게 됩니다.

이제 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줄을 출력합니다. 각자 반복문 조건식의 숫자를 바꿔서 다양한 크기로 출력해보세요.