파이썬에서는 중첩 for 루프(nested for loop)를 사용해 다양한 패턴을 출력할 수 있습니다. 바깥쪽 루프는 행(row)의 개수를 결정하고, 안쪽 루프는 각 행에 출력될 열(column)의 개수를 처리합니다. 여기에 print() 함수의 end 옵션 등을 상황에 맞게 수정하면 원하는 모양의 패턴을 자유롭게 만들 수 있습니다.
출력할 수 있는 패턴에는 별(*) 패턴, 숫자 패턴, 알파벳 패턴 등이 있으며, 삼각형, 피라미드 등 다양한 형태로 응용할 수 있습니다.
모든 패턴의 출력 원리는 기본적으로 동일하고, 루프 범위와 print 문만 조금씩 다르게 작성하면 됩니다. 지금부터 대표적인 패턴 몇 가지를 코드로 직접 구현해 보겠습니다.
삼각형 패턴 출력하기
예제 코드
def triangle(n):
k = n - 1
for i in range(1, n + 1):
for j in range(k):
print(' ', end='')
k = k - 1
for p in range(i):
print('*', end=' ')
print()
print('행 수를 입력하세요')
r = int(input())
triangle(r)
실행 결과
행 수를 입력하세요 5 * * * * * * * * * * * * * * *
바깥 루프가 행을 담당하고, 첫 번째 안쪽 루프는 앞쪽 공백을, 두 번째 안쪽 루프는 별을 출력합니다. 행이 내려갈수록 공백은 하나씩 줄고 별은 하나씩 늘어나면서 좌측 정렬된 직각삼각형이 완성됩니다. 위 코드를 다른 행 수로 실행하면 원하는 크기의 삼각형을 얻을 수 있습니다.
숫자 패턴 출력하기
예제 코드
def num_pattern(n):
num = 1
for i in range(1, n + 1):
for j in range(i):
print(num, end=' ')
num += 1
print()
print('행 수를 입력하세요')
r = int(input())
num_pattern(r)
실행 결과
행 수를 입력하세요 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
변수 num이 1부터 시작해 출력할 때마다 1씩 증가하기 때문에, 1부터 15까지의 자연수가 삼각형 형태로 순서대로 배치됩니다.
알파벳 패턴 출력하기
예제 코드
def alpha_pattern(n):
st = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
for i in range(1, n + 1):
for j in range(i):
print(st[j], end=' ')
print()
print('행 수를 입력하세요')
r = int(input())
alpha_pattern(r)
실행 결과
행 수를 입력하세요 5 A A B A B C A B C D A B C D E
A부터 Z까지 저장된 문자열에서 인덱스 위치의 문자를 하나씩 가져와 출력합니다. 각 행은 항상 A로 시작하며, 행 번호만큼 알파벳이 순서대로 나열됩니다.
피라미드(180도 회전) 패턴 출력하기
예제 코드
def pyramid(n):
k = n - 1
for i in range(1, n + 1):
for j in range(k):
print(' ', end='')
for p in range(i):
print('*', end=' ')
k = k - 1
print()
print('행 수를 입력하세요')
r = int(input())
pyramid(r)
실행 결과
행 수를 입력하세요
5
*
* *
* * *
* * * *
* * * *
별을 출력하기 전에 공백을 먼저 찍기 때문에 별들이 오른쪽으로 밀려나며, 오른쪽 아래가 직각인 계단식(우측 정렬) 피라미드 모양이 만들어집니다.
위의 코드들을 IDE에서 직접 실행해 보면 공백을 포함한 정확한 패턴 모양을 확인할 수 있습니다. 루프 범위와 출력 문자를 조금씩 바꾸면 다이아몬드, 모래시계 등 더 다양한 패턴도 쉽게 응용할 수 있으니 여러 가지로 변형해 보세요.