[파이썬] 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
예외 처리가 자동으로 이루어지므로 대부분의 경우 직접 처리할 필요가 없습니다.