이중 반복문은 반복문 안에 또 다른 반복문을 포함하는 구조입니다. 이를 통해 2차원 데이터 처리, 중첩된 작업, 또는 조합 생성과 같은 복잡한 작업을 간단하게 처리할 수 있습니다.
기본 구조
python
코드 복사
for 변수1in 반복가능한객체1: for 변수2in 반복가능한객체2: 실행할 코드
외부 반복문: 첫 번째 for 또는 while 반복문.
내부 반복문: 외부 반복문이 한 번 실행될 때마다 내부 반복문이 전체 반복됩니다.
예제 1: 단순 이중 반복문
python
코드 복사
for i inrange(3): # 외부 반복문for j inrange(2): # 내부 반복문print(f"i={i}, j={j}")
출력:
css
코드 복사
i=0, j=0i=0, j=1i=1, j=0i=1, j=1i=2, j=0i=2, j=1
설명:
i가 0일 때, j는 0부터 1까지 반복.
i가 1일 때, 다시 j는 0부터 1까지 반복.
i가 2일 때도 동일.
예제 2: 이중 반복문으로 구구단 출력
python
코드 복사
for i inrange(2, 10): # 2단부터 9단까지for j inrange(1, 10): # 각 단의 곱셈print(f"{i} x {j} = {i * j}", end="\t") print() # 각 단 끝에 줄바꿈
출력:
python
코드 복사
2 x 1 = 2 2 x 2 = 4 ... 2 x 9 = 18 3 x 1 = 3 3 x 2 = 6 ... 3 x 9 = 27 ... 9 x 1 = 9 9 x 2 = 18 ... 9 x 9 = 81
예제 3: 이중 반복문으로 2차원 리스트 처리
2차원 리스트(리스트 안에 리스트)에서 각 요소를 출력하거나 조작할 때 유용합니다.
python
코드 복사
matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] for row in matrix: # 행(row) 반복for element in row: # 열(column) 반복print(element, end=" ") print() # 각 행이 끝난 후 줄바꿈
출력:
코드 복사
1 2 3 4 5 6 7 8 9
예제 4: 이중 반복문으로 조합 생성
두 리스트의 모든 조합을 생성할 때 사용합니다.
python
코드 복사
colors = ["red", "green", "blue"] shapes = ["circle", "square"] for color in colors: for shape in shapes: print(f"{color}{shape}")
출력:
scss
코드 복사
red circle red square green circle green square blue circle blue square
예제 5: break와 continue 사용
이중 반복문에서도 특정 조건에 따라 반복을 제어할 수 있습니다.
break 사용
python
코드 복사
for i inrange(3): for j inrange(3): if j == 2: break# 내부 반복문 종료print(f"i={i}, j={j}")
출력:
css
코드 복사
i=0, j=0i=0, j=1i=1, j=0i=1, j=1i=2, j=0i=2, j=1
continue 사용
python
코드 복사
for i inrange(3): for j inrange(3): if j == 1: continue# 다음 반복으로 넘어감print(f"i={i}, j={j}")
출력:
css
코드 복사
i=0, j=0i=0, j=2i=1, j=0i=1, j=2i=2, j=0i=2, j=2
활용 사례
2차원 데이터 탐색:
테이블, 행렬(matrix) 또는 데이터프레임과 같은 2차원 구조에서 각 요소를 순회.
조합 생성:
두 개 이상의 리스트나 데이터 집합에서 가능한 모든 조합 생성.
구조 출력:
패턴 출력, 별 그리기 등.
이중 반복문은 데이터 처리와 구조적인 작업에서 매우 유용하므로 자주 사용되는 문법입니다. 😊
구구단 실습
i = 2# 구구단
while i <= 9:
j = 1# 각 단의 시작 곱
while j <= 8:
if j == 8:
j += 1
continue
print(f'{i}x{j}={i*j}', end='\t')
j += 1
print() # 각 단 끝난 후 줄바꿈
i += 1
if i == 10:
break
3, 6, 9 게임을 1부터 20까지 진행하는 코드를 작성하면 다음과 같습니다. 이 게임에서는 숫자에 3, 6, 9가 포함되면 "짝"을 출력합니다.
파이썬 코드
python
코드 복사
number = 1while number <= 20: # 숫자를 문자열로 변환하여 '3', '6', '9' 포함 여부 확인if'3'instr(number) or'6'instr(number) or'9'instr(number): print("짝", end=' ') else: print(number, end=' ') number += 1
실행 결과
코드 복사
1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20
코드 설명
while number <= 20:
1부터 20까지 반복합니다.
'3', '6', '9' 포함 여부 확인:
숫자를 문자열로 변환하고 '3', '6', '9'이 포함되어 있는지 확인합니다.
포함되어 있으면 "짝"을 출력합니다.
숫자 출력:
조건에 해당하지 않으면 숫자를 그대로 출력합니다.
결과 출력 간격 (end=' '):
출력이 한 줄로 이어지도록 설정합니다.
이 코드는 간단하면서도 3, 6, 9 게임 규칙을 충실히 구현한 방식입니다. 😊
while문과 continue, break를 사용하여 3, 6, 9 게임을 1부터 20까지 진행하는 코드를 작성하면 다음과 같습니다:
파이썬 코드
python
number = 1# 시작 숫자while number <= 20: # 1부터 20까지 반복if'3'instr(number) or'6'instr(number) or'9'instr(number): print("짝", end=' ') number += 1continue# "짝"을 출력한 후 다음 숫자로 넘어감print(number, end=' ') number += 1
실행 결과
코드 복사
1 2 짝 4 5 짝 7 8 짝 10 11 12 짝 14 15 짝 17 18 짝 20
코드 설명
while number <= 20:
number가 1부터 20까지 반복됩니다.
if '3' in str(number) or '6' in str(number) or '9' in str(number):
숫자를 문자열로 변환하여 3, 6, 9가 포함되어 있는지 확인합니다.
포함되면 "짝"을 출력합니다.
continue:
"짝"을 출력한 후 continue를 사용해 아래 코드(print(number))를 건너뛰고 바로 다음 숫자로 넘어갑니다.