파이썬 강좌: for문

이 강좌에서는 파이썬의 중요한 제어 구조 중 하나인 for문에 대해 자세히 알아보겠습니다. for문은 기본적으로 일정 범위의 값들을 순회할 때 사용됩니다. 파이썬에서 for문은 시퀀스(리스트, 튜플, 문자열 등)를 순회하는 데 유용하며, 반복 작업을 효율적으로 처리할 수 있도록 도와줍니다.

1. for문 기본 구조

파이썬의 for문은 시퀀스 내 각 요소에 대해 특정 코드 블록을 반복 실행하도록 설계되어 있습니다. 기본 구조는 다음과 같습니다:

for 변수 in 시퀀스:
    실행할 코드
    

여기서 “변수”는 각 반복에서 시퀀스의 요소 하나를 받게 되며, “실행할 코드”는 실제로 수행할 작업을 포함합니다.

2. 예제: 리스트 순회

리스트를 순회하는 가장 기본적인 예제를 살펴보겠습니다.

fruits = ['사과', '바나나', '체리']
for fruit in fruits:
    print(fruit)
    

이 코드는 fruits 리스트의 각 과일 이름을 출력합니다. 출력 결과는 아래와 같습니다:

사과
바나나
체리
    

3. range() 함수와 함께 사용하는 for문

range() 함수는 주로 for문과 함께 사용되어 정해진 횟수만큼 코드를 반복 실행할 수 있게 합니다. range(start, stop[, step]) 구문을 가지며, 파라미터는 다음과 같습니다:

  • start: 카운트가 시작될 숫자. 기본값은 0.
  • stop: 카운트가 끝날 숫자(포함되지 않음).
  • step: 카운트 간의 간격. 기본값은 1.

예시를 통해 이해해 보겠습니다:

for i in range(3):
    print(i)
    

출력:

0
1
2
    

4. 중첩 for문

중첩 for문은 간단히 말해 for문 내에 또 다른 for문이 있는 구조를 의미합니다. 다음은 이중 리스트를 순회하는 중첩 for문의 예시입니다:

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in matrix:
    for num in row:
        print(num)
    

이 코드는 2차원 리스트의 모든 숫자를 출력합니다.

5. for문과 else

파이썬에서 for문은 의외로 else와 함께 사용될 수 있습니다. for문이 정상적으로 끝났을 때 수행될 코드를 else 블록에 작성할 수 있습니다. 다음 예제를 보시죠:

for fruit in fruits:
    if fruit == '바나나':
        print('바나나 발견!')
        break
else:
    print('바나나가 없습니다.')
    

이 경우 ‘바나나 발견!’이 출력되며, 베어와 함께 for else 문이 어떻게 작동하는지 이해할 수 있습니다.

6. enumerate()와 함께 사용하기

enumerate() 함수는 시퀀스를 순회할 때 인덱스와 요소를 동시에 다루도록 도와줍니다. 다음 예제를 통해 자세히 살펴보겠습니다:

for index, fruit in enumerate(fruits):
    print(index, fruit)
    

출력:

0 사과
1 바나나
2 체리
    

7. 무한 루프를 피하기 위한 Break

특정 조건에서 for 반복을 중단하고 싶다면, break 문을 사용할 수 있습니다. 이렇게 사용하면 무한 루프나 불필요한 반복을 피할 수 있습니다.

for i in range(10):
    if i == 5:
        break
    print(i)
    

출력:

0
1
2
3
4
    

8. 성능 고려하기

복수의 반복문을 사용할 때는 성능을 고려해야 합니다. 특히 데이터셋이 클 경우, 중첩 반복문은 성능에 부정적인 영향을 줄 수 있습니다. 이를 최소화하기 위한 팁은 다음과 같습니다:

  • 가능한 경우 리스트 내포(list comprehensions)를 사용합니다.
  • 필요하지 않은 반복을 피하기 위한 ‘break’ 및 ‘continue’ 구문을 적절히 사용합니다.

9. for문과 리스트 내포

리스트 내포는 리스트를 더 간결하게 생성할 수 있는 방법입니다. 반복문에 비해 짧고, 때로는 속도가 더 빠릅니다:

numbers = [1, 2, 3, 4, 5]
squared = [n**2 for n in numbers]
print(squared)
    

출력:

[1, 4, 9, 16, 25]
    

결론

파이썬의 for문은 다양한 데이터 구조를 순회하고 처리하는 데 필수적인 도구이며, 효율적인 코드 작성에 큰 도움이 됩니다. 효과적인 코드를 작성하기 위해서는 for문의 다양한 활용법을 이해하고, 실제 코드에 적용해 보는 것이 중요합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다