[파이썬] StopIteration 발생원인과 수정 방법 예제

StopIteration은 파이썬에서 발생하는 예외 중 하나로, 주로 이터레이터(Iterator)나 제너레이터(Generator)가 다음 요소를 제공하지 않을 때 발생합니다. 이 예외는 주로 next() 함수와 같이 사용됩니다.

발생 원인:

StopIteration 예외는 이터레이터나 제너레이터가 더 이상 값이 없을 때 발생합니다. 이것은 주로 이터레이션을 끝내는 신호로 사용됩니다.

수정 방법 예제:

StopIteration 예외는 주로 파이썬 2.x에서 사용되던 방식으로, 파이썬 3.x에서는 StopIteration 예외를 직접 처리하기보다는 for 루프나 next() 함수를 사용할 때 예외 처리가 자동으로 이루어집니다. 그러나 경우에 따라 StopIteration 예외를 직접 처리해야 할 수도 있습니다. 예를 들어, 직접 예외 처리를 수행하는 경우와 자동 처리를 보여주는 두 가지 예제를 제공하겠습니다.

1. 직접 예외 처리:

iterator = iter([1, 2, 3])
try:
    while True:
        item = next(iterator)
        print(item)
except StopIteration:
    print("Iteration finished")

2. 자동 예외 처리:

for item in [1, 2, 3]:
    print(item)
print("Iteration finished")

두 예제 모두 같은 결과를 출력하며, 마지막에 “Iteration finished”가 출력됩니다. 파이썬 3.x에서는 StopIteration 예외 처리가 자동으로 이루어지므로 대부분의 경우 직접 처리할 필요가 없습니다.