Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 피라미드 패턴 출력하기 – 반복문 활용 예제 총정리

파이썬(Python)의 for 루프range 함수를 활용하면 다양한 형태의 피라미드 구조를 손쉽게 그릴 수 있습니다. 이 접근법의 핵심은 출력하려는 기호가 놓일 세로·가로 공간을 고려하여 적절한 for 루프를 설계하는 것입니다. 아래에서는 난이도별로 네 가지 피라미드 패턴을 코드 예제와 함께 살펴보겠습니다.

패턴 1 – 직각삼각형

가장 기본적인 형태로, 왼쪽 하단을 기준으로 하는 직각삼각형 모양의 패턴입니다. 바깥 루프는 줄 수를, 안쪽 루프는 해당 줄에 출력할 별표(*)의 개수를 담당합니다.

예제 코드

def pyramid(p):
    for m in range(0, p):
        for n in range(0, m+1):
            print("* ",end="")
        print("\r")
p = 10
pyramid(p)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

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

패턴 2 – 180도 회전한 직각삼각형

패턴 1을 오른쪽으로 밀어낸 형태입니다. 각 줄을 출력하기 전에 공백을 먼저 찍고, 줄이 내려갈수록 공백 개수를 2씩 줄여가며 별표를 출력합니다.

예제 코드

def pyramid(p):
    X = 2*p - 2
    for m in range(0, p):
        for n in range(0, X):
            print(end=" ")
        X = X - 2
        for n in range(0, m+1):
            print("* ", end="")
        print("\r")
p = 10
pyramid(p)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

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

패턴 3 – 이등변 삼각형

이번에는 양변의 길이가 같은 이등변 삼각형(isosceles triangle) 모양을 그려봅니다. 왼쪽에 공백을 채운 뒤, 홀수 개수만큼 별표를 출력하여 중앙을 기준으로 대칭을 이루는 피라미드 형태를 만듭니다.

예제 코드

n = 0
r = 12
for m in range(1, r+1):
    for gap in range(1, (r-m)+1):
        print(end=" ")
    while n != (2*m-1):
        print("* ", end="")
        n = n + 1
    n = 0
    print()

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

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

패턴 4 – 정삼각형

마지막으로 세 변의 길이가 모두 같은 정삼각형(equilateral triangle) 패턴입니다. 이번에는 별표 대신 '@' 기호를 사용했으며, 공백 개수를 한 칸씩 줄여가며 대칭 구조를 완성합니다.

예제 코드

length = 12
k = (2 * length) - 2
for p in range(0, length):
    for n in range(0, k):
        print(end=" ")
    k = k - 1
    for n in range(0, p + 1):
        print("@", end=' ')
    print(" ")

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

           @
          @ @
         @ @ @
        @ @ @ @
       @ @ @ @ @
      @ @ @ @ @ @
     @ @ @ @ @ @ @
    @ @ @ @ @ @ @ @
   @ @ @ @ @ @ @ @ @
  @ @ @ @ @ @ @ @ @ @
 @ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @ @ @

마무리

이처럼 for 루프와 range 함수만으로도 직각삼각형부터 정삼각형까지 다양한 피라미드 패턴을 자유롭게 출력할 수 있습니다. 루프의 범위나 공백 계산 방식을 조금씩 바꿔가며 연습하면 반복문 구조에 대한 이해를 크게 높일 수 있으니, 위 예제들을 직접 변형해 보시기 바랍니다.