1. 중첩 반복문(Nested Loop)이란?
중첩 반복문(Nested Loop)은 반복문 안에 또 다른 반복문이 포함된 구조를 의미합니다. Python에서는 for 문과 while 문 모두 중첩해서 사용할 수 있으며, 이를 통해 이중 루프(2D 데이터 구조), 다중 패턴 처리, 테이블 연산, 중첩된 조건 평가 등을 수행할 수 있습니다.
2. 중첩 for 문 활용
㉮ 기본 구조
for 바깥반복변수 in 반복가능한객체1:
for 안쪽반복변수 in 반복가능한객체2:
실행한 코드
바깥 반복문(Outer Loop)이 한 번 실행될 때마다 안쪽 반복문(Inner Loop)이 전체 반복을 수행합니다.
㉯ 2D 리스트(행렬) 출력 예제
중첩 for 문을 사용하면 **2D 리스트(행렬)**의 각 요소를 순회할 수 있습니다.
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix:
for element in row:
print(element, end=" ")
print() # 줄바꿈
출력결과
1 2 3
4 5 6
7 8 9
㉰ 별(★) 패턴 출력
중첩 for 문을 활용하여 다양한 패턴 출력이 가능합니다.
1. 왼쪽 정렬된 삼각형
rows = 5
for i in range(1, row + 1):
for j in range(i):
print("*", end="")
print() # 줄바끔
출력결과
*
**
***
****
*****
2. 오른쪽 정렬된 삼각형
rows = 5
for i in range(1, rows + 1):
print(" " * (rows - i) + "*" * i)
출력결과
*
**
***
****
*****
3. 피라미드 형태
rows = 5
for i in range(1, rows + 1):
print(" " * (rows - i) + "*" * (2 * i - 1))
출력결과
*
***
*****
*******
*********
㉱ 구구단 출력
for i in range(2, 10): # 2단부터 9단까지
for j in range(1, 10): # 각 단의 곱셈 수행
print(f"{i} x {j} = {i * j}", end="\t")
print()
출력결과
2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 ...
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 ...
...
• end="\t": 탭 간격을 추가하여 가로 정렬
• 중첩 for 문을 사용하여 2단부터 9단까지 반복 실행
3. 중첩 while 문 활용
㉮ 기본구조
while 조건1:
while 조건2:
실행할 코드
• 바깥 while 문이 실행될 때마다 안쪽 while 문이 조건을 만족하는 동안 실행됩니다.
㉯ while 문을 활용한 패턴 출력
rows = 5
i = 1
while i <= rows:
j = 1
while j <= i:
print("*", end="")
j += 1
print()
i += 1
출력결과
*
**
***
****
*****
㉰ while 문을 활용한 사용자 입력 대기 프로그램
while True:
num = int(input("1~10 사이의 숫자를 입력하세요 (0 입력 시 종료): "))
if num == 0:
print("프로그램을 종료합니다.")
break # 종료 조건
elif 1 <= num <= 10:
print(f"입력한 숫자: {num}")
else:
print("유효한 숫자가 아닙니다, 다시 입력하세요.")
출력결과
1~10 사이의 숫자를 입력하세요 (0 입력 시 종료): 5
입력한 숫자: 5
1~10 사이의 숫자를 입력하세요 (0 입력 시 종료): 0
프로그램을 종료합니다.
• 무한 루프를 활용하여 사용자 입력을 반복
• 0을 입력하면 break로 반복 종료
4. 중첩 반복문 활용 예제
㉮ 체스판 만들기 (홀짝 패턴)
size = 8
for i in range(size):
for j in range(size):
if (i + j) % 2 == 0:
print("■", end=" ")
else:
print("□", end=" ")
print()
출력결과
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
• 짝수 인덱스 → 검은색(■)
• 홀수 인덱스 → 흰색(□)
• 체스판과 같은 패턴을 만들 수 있음
㉯ 로또 번호 생성기
import random
lotto_numbers = []
while len(lotto_numbers) < 6:
num = random.randint(1, 45)
if num not in lotto_numbers: # 중복 방지
lotto_numbers.append(num)
print("이번 주 로또 번호:", sorted(lotto_numbers))
• while 문을 활용하여 6개의 랜덤한 숫자 생성
• 중복을 방지하기 위해 not in 연산자 사용
• sorted()로 최종 결과를 정렬하여 출력
5. 요약
• 중첩 반복문은 반복문 내부에 또 다른 반복문이 있는 구조로, 2D 데이터 처리, 패턴 출력, 테이블 연산 등에서 자주 사용됨.
• for 문을 활용하면 리스트, 행렬, 구구단, 패턴 출력 등을 쉽게 구현 가능.
• while 문을 활용하면 입력 대기 프로그램, 무한 루프, 숫자 검증 등에서 효과적.
• break 와 continue를 활용하여 반복문 흐름을 제어하면 더 효율적인 코드 작성 가능.
'코딩교육 > Python 초등교육에서 전문가까지' 카테고리의 다른 글
2단계 : 3. 반복문 (무한 루프와 그 활용 사례) (0) | 2025.03.08 |
---|---|
2단계 : 3. 반복문 (break 와 continue의 사용 방법과 차이) (0) | 2025.03.07 |
2단계 : 3. 반복문 (반복문의 필수 구성 요소 - range, 조건식, 종료 조건 등) (0) | 2025.03.05 |
2단계 : 3. 반복문 (for 와 while 의 차이점과 기본 사용법) (0) | 2025.03.04 |
2단계 : 2. 조건문 (조건문을 활용한 간단한 프로그램 만들기) (0) | 2025.02.23 |