반응형
Python은 데이터 처리와 작업 자동화에 강력한 도구를 제공하며,
그중 반복문(loops)은 코드를 효율적으로 작성하는 데 필수적입니다.
이번 블로그 포스트에서는 Python의 두 가지 주요 반복문인 for와 while에 대해 자세히 알아보고,
사용법, 예제, 실무 팁, 그리고 추가적인 활용 사례를 공유하겠습니다.
1. 반복문이란?
반복문은 동일한 코드를 여러 번 실행할 수 있게 해주는 제어 구조입니다.
Python에서는 주로 for와 while 두 가지 반복문을 사용하며, 각각의 목적과 사용 시나리오가 다릅니다.
이를 통해 리스트, 문자열, 숫자 시퀀스 등 다양한 데이터에 반복적으로 접근할 수 있습니다.
반복문은 코드의 재사용성을 높이고, 반복적인 작업을 간소화하는 데 큰 역할을 합니다.
2. for 반복문
for 반복문은 시퀀스(리스트, 튜플, 문자열 등)의 각 요소를 순차적으로 탐색할 때 유용합니다. 기본 구조는 다음과 같습니다:
for 변수 in 시퀀스:
# 코드 블록
2.1. 기본 사용법
리스트를 순회하며 각 요소를 출력하는 예제입니다.
fruits = ["apple", "banana", "orange"]
for fruit in fruits:
print(f"I like {fruit}")
# 출력:
# I like apple
# I like banana
# I like orange
2.2. range()와 함께 사용
range() 함수를 사용하면 특정 범위의 숫자를 반복할 수 있습니다.
for i in range(5): # 0부터 4까지
print(i)
# 출력:
# 0
# 1
# 2
# 3
# 4
for i in range(2, 5): # 2부터 4까지
print(i)
# 출력:
# 2
# 3
# 4
2.3. enumerate()로 인덱스와 값 함께 사용
리스트의 인덱스와 값을 함께 얻고 싶을 때 enumerate()를 사용합니다.
for index, fruit in enumerate(fruits):
print(f"Index {index}: {fruit}")
# 출력:
# Index 0: apple
# Index 1: banana
# Index 2: orange
3. while 반복문
while 반복문은 조건이 참인 동안 코드를 반복 실행합니다. 기본 구조는 다음과 같습니다:
while 조건:
# 코드 블록
3.1. 기본 사용법
카운터를 사용해 0부터 4까지 출력하는 예제입니다.
count = 0
while count < 5:
print(count)
count += 1
# 출력:
# 0
# 1
# 2
# 3
# 4
3.2. 사용자 입력 처리
사용자가 "quit"를 입력할 때까지 반복하는 예제입니다.
while True:
user_input = input("입력하세요 (quit로 종료): ")
if user_input == "quit":
break
print(f"입력한 값: {user_input}")
# 출력 예:
# 입력하세요 (quit로 종료): hello
# 입력한 값: hello
# 입력하세요 (quit로 종료): quit
4. 고급 활용
4.1. break와 continue
break: 루프를 즉시 종료합니다.
continue: 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다.
for i in range(10):
if i == 3:
break # 3에서 루프 종료
print(i)
# 출력:
# 0
# 1
# 2
for i in range(5):
if i == 2:
continue # 2는 건너뜀
print(i)
# 출력:
# 0
# 1
# 3
# 4
4.2. 중첩 반복문
반복문을 중첩해 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
4.3. else와 함께 사용
for와 while 반복문은 else 블록을 가질 수 있습니다. 루프가 자연스럽게 종료될 때 실행됩니다.
for i in range(5):
print(i)
else:
print("루프가 끝났습니다!")
# 출력:
# 0
# 1
# 2
# 3
# 4
# 루프가 끝났습니다!
count = 0
while count < 3:
print(count)
count += 1
else:
print("while 루프가 끝났습니다!")
# 출력:
# 0
# 1
# 2
# while 루프가 끝났습니다!
5. 실무 활용 사례
5.1. 데이터 처리
리스트에서 짝수만 필터링하는 예제입니다.
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = []
for num in numbers:
if num % 2 == 0:
even_numbers.append(num)
print(even_numbers) # 출력: [2, 4, 6, 8, 10]
5.2. 파일 읽기
파일의 각 줄을 반복문을 통해 읽는 예제입니다.
with open("sample.txt", "r") as file:
for line in file:
print(line.strip())
# 출력: sample.txt의 각 줄
6. 성능 최적화와 디버깅
6.1. 성능 최적화
큰 데이터셋을 다룰 때는 for 대신 제너레이터 표현식을 사용하는 것이 메모리 효율적입니다.
# 제너레이터 사용
gen = (x * 2 for x in range(1000000))
for value in gen:
pass # 메모리 절약
# 일반 리스트
large_list = [x * 2 for x in range(1000000)]
6.2. 디버깅 팁
루프 내에서 변수 값을 추적하려면 print()나 디버거를 활용하세요. 무한 루프가 의심될 때는 Ctrl+C로 중단할 수 있습니다.
7. 주의점
무한 루프: while에서 조건을 잘못 설정하면 무한 루프가 발생할 수 있으니 주의하세요.
인덱스 오류: for에서 리스트 범위를 벗어나지 않도록 확인하세요.
가독성: 복잡한 중첩 루프는 함수로 분리해 유지보수성을 높이세요.
반응형
'python > python 기초' 카테고리의 다른 글
Python으로 데이터 분석하기: Pandas 완벽 가이드 (0) | 2025.04.03 |
---|---|
Python 리스트(List) 완벽 가이드: 기본부터 고급 활용까지 (0) | 2025.04.03 |
python 파이썬 딕셔너리 모든 것 key value 특정 키값 json values 파이썬 출력 하는 법 (0) | 2024.10.17 |
python 파이썬 슬라이싱 문자열 string 출력 하는 법 (2) | 2024.10.17 |
python 파이썬 배열 array 출력 하는 법 (2) | 2024.10.17 |
댓글