일반적으로 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 = 0
for idx in n:
if idx % 2 == 0:
print(f'{idx} is an even number!')
break
else:
print(f'{idx} is not an even number!')
else: # break checker
print('There is not an even number!')
idx = 1
while (idx := idx+2) < 10:
if idx % 2 == 0:
print(f'{idx} is an even number!')
break
else:
print(f'{idx} is not an even number!')
else: # break checker
print('There is not an even number!')
'Python' 카테고리의 다른 글
[Pandas] Index 지정 관련 메서드 : reset_index, set_index (0) | 2023.09.20 |
---|---|
[Python] IPython shell 에서 shell cmds 사용하기. (0) | 2023.09.19 |
[Python] Type Annotation: 파이썬에서 변수 및 함수에 type 지정. (0) | 2023.08.30 |
[Python] functools.partial (0) | 2023.08.25 |
[Python] instance methods, class methods, and static methods (0) | 2023.08.20 |