반복문에서 else는 loop 가 break로 끝나지 않을 경우 수행되는 code block을 지정. https://www.linkedin.com/posts/rodrigo-gir%C3%A3o-serr%C3%A3o_the-for-loop-in-python-can-be-followed-activity-7269835572683177984-xP7_/
조건문에서 else
일반적으로 else의 경우, 앞서의 if 와 elif문들에서 실행된 block이 없는 경우 수행되는 것을 의미한다.
그런데 python에서는 for와 while과 같은 loop structure 에서도 else를 뒤에 붙여서 break로 해당 loop가 나왔는지를 체크할 수 있다.
정확히 말하면, loop structure 에서의 else는 앞서의 loop structure에서 break로 종료되지 않은 경우에 수행된다.
하지만, 다른 언어에는 없는 방식의 응용인데다...
앞서의 조건에 걸리지 않았을 때만 수행된다는 else의 조건분기에서 의미와도 잘 맞지 않기 때문에 많은 책들이나 tutorial에서 사용을 권하지 않는다.
가능하다고 해서 해도 된다는 건 아님
때문에 loop structure에서는 else를 단순히 break checker로 인식하되 많은 사용은 하지 않는 게 좋다.
다음 code snippet을 참고하자.
n = range(1,10,2)
idx = 0for idx in n:
if idx % 2 == 0:
print(f'{idx} is an even number!')
breakelse:
print(f'{idx} is not an even number!')
else: # break checkerprint('There is not an even number!')
idx = 1while (idx := idx+2) < 10:
if idx % 2 == 0:
print(f'{idx} is an even number!')
breakelse:
print(f'{idx} is not an even number!')
else: # break checkerprint('There is not an even number!')