본문 바로가기
수업자료

실습 : 다양한 형태의 피라미드 출력

by ^..^v 2024. 8. 4.
728x90
반응형

중첩 반복문을 이용해 다양한 형태의 피라미트를 출력하는 프로그램을 작성해 보겠습니다. 

 

별로 이루어진 정방형 피라미드

square_pyramid 함수는 별표를 사용해 피라미드 모양을 출력합니다. 피라미드의 높이는 함수의 인자로 전달된 n에 의해 결경되며, 첫번째 for 루프는 피라미드의 각 층을 나타내며, 두번째 for 루프는 각 층에서 별표를 출력하기 전에 공백을 출력하는 역할을 합니다. 공백의 개수는 피라미드의 모양을 맞추기 위해 n-1로 계산됩니다. 세번째 for 루프는 각 층에서 별표를 출력하는 역할을 합니다. 별표의 개수는 피라미드의 모양을 맞추기 위해 2 * i - 1로 계산됩니다. 각 층이 출력된 후 print() 함수를 이용해 줄바꿈해 다음 충이 새로운 줄에 출력되도록 합니다. 

def square_pyramid(n):
    for i in range(1, n + 1):
        for j in range(n - i):
            print(' ', end='')
        for k in range(2 * i - 1):
            print('*', end='')
        print()

square_pyramid(5)

 

별로 이루어진 역 피라미드

별표로 이루어진 역삼각형 피라미드를 출력하는 함수입니다. 함수의 인자로 피라미드의 높이를 지정하면 그 높이에 맞는 역삼각형 피라미드를 출력합니다. 첫번째 for 루프는 피라미드의 각 층을 나타냅니다. i는 현재 층의 번호를 의미하며, n 층에서 1층까지 반복됩니다. 두번째 for 루프는 각 층에서 별표를 출력하기 전에 공백을 출력하는 역할을 합니다. 공백의 개수는 피라미드의 모양을 맞추기 위해 n - i로 계산됩니다. 세번째 for 루프는 각 층에서 별표를 출력하는 역할을 합니다. 별표의 개수는 피라미드의 모양을 맞추기 위해 2 * i - 1로 계산됩니다. 각 층이 출력된 후 줄바꿈을 통해 다음 층이 새로운 줄에 출력되도록 합니다.

def inverted_pyramid(n):
    for i in range(n, 0, -1):
        for j in range(n - i):
            print(' ', end='')
        for k in range(2 * i - 1):
            print('*', end='')
        print()

inverted_pyramid(5)

 

숫자로 이루어진 피라미드

다음은 숫자로 이루어진 피라미드를 출력하는 함수입니다. 피라미드의 높이는 함수의 인자로 지정되며, 각 층의 숫자는 좌우 대칭 형태로 출력됩니다. 첫번째 for 루프는 피라미드의 각 층을 나타냅니다. i는 현재 층의 번호를 의미하며, 1층부터 n층까지 반복됩니다. 두번째 for 루프는 각 층에서 숫자를 출력하기 전에 공백을 출력하는 역할을 합니다. 공백의 개수는 피라미드의 모양을 맞추기 위해 n - i로 계산됩니다. 세번째 for 루프는 각 층에서 증가하는 순서로 출력하는 역할을 합니다. k는 1부터 i까지 반복되며, 이는 현재 층의 숫자를 나타냅니다. 마지막 네번째 for 루프는 각 층에서 감소하는 숫자를 순서대로 출력하는 역할을 담당합니다. 각 층이 출력된 후 줄바꿈을 통해 다음 층이 새로운 줄에 출력되도록 합니다. 

def number_pyramid(n):
    for i in range(1, n + 1):
        for j in range(n - i):
            print(' ', end='')
        for k in range(1, i + 1):
            print(k, end='')
        for l in range(i - 1, 0, -1):
            print(l, end='')
        print()

number_pyramid(5)

 

문자로 이루어진 피라미드

char_pyramid 함수는 알파벳으로 이루어진 피라미드를 출력하는 함수입니다. 피라미드의 높이는 함수의 인자로 전달되며, 각 층의 아파벳은 좌우 대칭 형태로 출력됩니다. 첫번째 for 루프는 피라미드의 각 층을 나타내며, i는 현재 층의 번호를 의미하며, 0층부터 n-1층까지 반복됩니다. 두번째 for 루프는 각 층에서 알파벳을 출력하기 전에 공백을 출력하는 역할을 합니다. 공백의 개수는 피라미드의 모양을 맞추기 위해 n - i - 1로 계산됩니다. 세번째 for 루프는 각 층에서 알파벳을 증가하는 순서로 출력하는 역할을 합니다. k는 0부터 i까지 반복되며, 이는 현재 층의 알파벳을 나타냅니다. 마지막 네번째 for 루프는 각 층에서 알파벳을 감소하는 순서로 출력하는 역할을 합니다. 변수 l은 i - 1 부터 0 까지 반복되며, 이는 현재 층의 알파벳을 나타냅니다. 각 층이 출력된 후 줄바꿈을 통해 다음 층이 새로운 줄에 출력되도록 합니다.

def char_pyramid(n):
    alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    for i in range(n):
        for j in range(n - i - 1):
            print(' ', end='')
        for k in range(i + 1):
            print(alphabet[k], end='')
        for l in range(i - 1, -1, -1):
            print(alphabet[l], end='')
        print()

char_pyramid(5)

 

별과 숫자가 혼합된 피라미드

함수의 인자로 전달된 숫자 만큼의 피라미드를 작성하는 함수입니다. 피라미드의 각 층의 내용은 별표와 숫자가 혼합된 형태로 출력됩니다. 첫번째 for 루프는 피라미드의 각 층을 나타내며, i는 현재 층의 번호를 의미하며, 1층 부터 n층 까지 반복됩니다. 두번째 for 루프는 각 층에서 별표를 출력하기 전에 공백을 출력하는 역할을 합니다. 공백의 개수는 피라미드의 모양을 맞추기 위해 n - 1로 계산됩니다. 세번째 for 루프는 각 층에서 별표를 출력하는 역할을 합니다. k는 1부터 i까지 반복되며, 이는 현재 층의 별표 개수를 나타냅니다. 네번째 for 루프는 각 층에서 별표 다음에 숫자를 감소하는 순서로 출력하는 역할을 합니다. m은 i부터 2까지 반복되며, 이는 현재 층의 숫자를 나타냅니다. 마지막으로 각 층이 출력된 후 줄바꿈을 통해 다음 층이 새로운 줄에 출력되도록 합니다. 

def mixed_pyramid(n):
    for i in range(1, n + 1):
        for j in range(n - i):
            print(' ', end='')
        for k in range(1, i + 1):
            print('*', end='')
        for m in range(i, 1, -1):
            print(m - 1, end='')
        print()

mixed_pyramid(5)

 

728x90
반응형

'수업자료' 카테고리의 다른 글

실습 : 행맨  (0) 2024.08.04
실습 : 가위, 바위, 보 게임  (1) 2024.08.04
실습 : 주민등록번호를 이용한 나이, 성별 추출  (0) 2024.08.02
실습 : 주문 처리 함수  (0) 2024.08.01
실습 : 구구단 출력  (0) 2024.07.31

댓글