2019년 12월 14일 토요일

파이썬, for ... else .. 사용법


파이썬에는 for문에 특이한 else기능이 하나 더 있습니다.

이것은 일종의 syntax sugar같은 것인데,

이런 문법들을 사용하면, 간결해지면서 가독성이 좋아지죠,,
(단 문법을 알고 있다는 전제로 입니다. )

이 방법의 사용예는

for문을 사용하다보면, 루프 중간에 break 문으로 빠져나오는 경우들이 있는데,
이게 break문이 걸려서 빠져나가는지 아닌지를 판단이 필요한 경우가 있습니다.

보통은  flag등을 둬서, 처리하는게 기존의 방식이라면,
for문과 같은 레벨에 else를 둬서 break없이 빠져나온 경우를 처리하는 방법입니다.




for x in range(4):
  if x == 2:
    print ('loop out')
    break
else:
  print ('loop end')



위 예제의 경우는 x =2 에서 루프를 빠져나오기때문에, else문이 실행이 되지 않고
'loop out' 이 출력이 되고,



for x in range(4):
  # nop
  pass
else:
  print ('loop end')


위와 같은 경우는 , for loop가 break없이 빠져나왔으므로 'loop end' 가 출력이 된다.




댓글 없음:

댓글 쓰기