중첩 반복문을 이용해 다양한 형태의 피라미트를 출력하는 프로그램을 작성해 보겠습니다.
별로 이루어진 정방형 피라미드
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)
'수업자료' 카테고리의 다른 글
실습 : 행맨 (0) | 2024.08.04 |
---|---|
실습 : 가위, 바위, 보 게임 (1) | 2024.08.04 |
실습 : 주민등록번호를 이용한 나이, 성별 추출 (0) | 2024.08.02 |
실습 : 주문 처리 함수 (0) | 2024.08.01 |
실습 : 구구단 출력 (0) | 2024.07.31 |
댓글