"데이터를 하나씩 꺼내서 처리하고 싶다" 라는 상황이 온다.
예를 들어:
- 리스트에 있는 값 전부 출력
- 점수 리스트 평균 계산
- 문자열 하나씩 검사
이럴 때 사용하는 것이 바로 for문(반복문)이다.
◆ for문이란?
for문은 리스트, 튜플, 문자열 같은 "반복 가능한 데이터"를 하나씩 꺼내서 실행하는 구조다.
◆ 기본 구조
for 변수 in 반복가능한객체:
실행할 코드
기본 예제
numbers = [1, 2, 3, 4]
for n in numbers:
print(n)
결과 : 1 2 3 4
리스트에서 값을 하나씩 꺼내서 반복 실행한다.
◆ 문자열도 반복 가능하다
for ch in "python":
print(ch)
결과 : p y t h o n
문자열도 하나씩 분리해서 사용 가능하다.
◆ 튜플, 딕셔너리도 가능
for x in (1, 2, 3):
print(x)
대부분의 "자료형"에서 사용 가능하다.
◆ 구조 분해 할당
a = [(1, 2), (3, 4), (5, 6)]
for (first, last) in a:
print(first + last)
결과 : 3 7 11
튜플 구조를 자동으로 분해해서 변수에 넣는다.
실무에서 매우 자주 쓰인다.
◆ continue (건너뛰기)
for문에서도 continue 사용이 가능하다.
현재 방복을 건너뛰고 다음 반복으로 이동한다.
예제
for i in range(1, 6):
if i == 3:
continue
print(i)
결과 : 1 2 4 5
◆ range 함수
for문은 range와 거의 세트다.
기본 사용
for i in range(5):
print(i)
결과 : 0 1 2 3 4
0부터 시작한다.
끝 숫자는 포함이 안된다.
시작값 지정
for i in range(1, 6):
print(i)
결과 : 1 2 3 4 5
간격 지정
for i in range(0, 10, 2):
print(i)
결과 : 0 2 4 6 8
◆ for vs while 차이
| 구분 | for | while |
| 기준 | 데이터 순회 | 조건 |
| 사용 | 리스트, 문자열 | 조건 반복 |
| 안정성 | 높음 | 무한 루프 위험 |
대부분 상황에서는 for문이 더 안전하고 많이 사용된다.
◆ 리스트 내포(List Comprehension)
기본 구조
[표현식 for 변수 in 반복객체]
예제
numbers = [1, 2, 3, 4]
result = [x * 2 for x in numbers]
print(result)
결과 : [2 4 6 8]
한 줄로 리스트를 생성할 수 있다.
코드가 훨씬 간결해진다.
조건 추가
result = [x for x in range(10) if x % 2 == 0]
결과 : [0, 2, 4, 6, 8]
조건까지 포함이 가능하다.
중첩 for문
result = [(x, y) for x in [1, 2] for y in [3, 4]]
결과 : [(1, 3), (1, 4), (2, 3), (2, 4)]
잦은 실수 모음
1. range 끝값 포함된다고 착각
range(5) → 0~4
2. 변수 의미 없이 사용
for i in numbers:
i 대신 의미 있는 이름 추천
3. 리스트 내포 과도 사용
너무 복잡하면 오히려 가독성 떨어짐
◆ 예제
리스트 합 구하기
numbers = [1, 2, 3, 4]
total = 0
for n in numbers:
total += n
print(total)
문자열 필터링
text = "python"
for ch in text:
if ch != "o":
print(ch)
◆ 정리
- for문은 데이터를 하나씩 꺼내서 반복한다.
- range = 숫자 반복 핵심
- continue = 건너뛰기
- 리스트 내포 = 한 단계 높은 문법
for문은 데이터를 자동으로 순회하는 가장 강력한 반복문이다.
'Python' 카테고리의 다른 글
| 파이썬 입력, 출력, 파일 처리 정리 (0) | 2026.04.30 |
|---|---|
| 파이썬 함수 정리(def, return, 매개변수, lambda) (0) | 2026.04.30 |
| while문 정리(반복문 기초부터 break, continue, 무한 루프까지) (1) | 2026.04.27 |
| if문 정리 (0) | 2026.04.27 |
| 문자열 포매팅 정리(f-string, format, % 차이) (0) | 2026.04.23 |
