19.3 계단식으로 별 출력하기

계단식으로 하나씩 증가하게 별을 출력하려면 어떻게 해야 할까요? 앞에서 사각형으로 별을 출력할 때는 사각형에 꽉 채워서 별을 출력하지만, 계단식으로 출력할 때는 별을 출력하지 않는 부분이 있으므로 조건문으로 print를 제어해야 합니다.

for i in range(5):        # 5번 반복. 세로 방향
    for j in range(5):    # 5번 반복. 가로 방향
        #        ↓ 별 출력을 제어하기 위한 조건문
        if               : 
            print('*', end='')    # 별 출력. end에 ''를 지정하여 줄바꿈을 하지 않음
    print()    # 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감
               # (print는 출력 후 기본적으로 다음 줄로 넘어감)

첫 번째 줄에는 별이 한 개, 두 번째 줄에는 별이 두 개, 세 번째 줄에는 별이 세 개, 네 번째 줄에는 별이 네 개, 다섯 번째 줄에는 별이 다섯 개입니다.

*
**
***
****
*****

즉, 별의 개수는 세로 방향인 줄의 위치에 비례하므로 조건식도 세로 방향 변수 i에 맞추어 작성합니다. 다음 내용을 IDLE의 소스 코드 편집 창에 입력한 뒤 실행해보세요.

star_triangle.py

for i in range(5):        # 5번 반복. 세로 방향
    for j in range(5):    # 5번 반복. 가로 방향
        if j <= i:                # 세로 방향 변수만큼
            print('*', end='')    # 별 출력. end에 ''를 지정하여 줄바꿈을 하지 않음
    print()    # 가로 방향으로 별을 다 그린 뒤 다음 줄로 넘어감
               # (print는 출력 후 기본적으로 다음 줄로 넘어감)

실행 결과

*
**
***
****
*****

계단식으로 별이 출력되죠? 조건식은 if j <= i:와 같이 작성하여 가로 방향(j)으로 별을 출력할 때는 세로 방향(i)의 변수만큼 출력하면 됩니다. 즉, i가 증가하면 i만큼 별이 늘어나게 됩니다.