for / while 반복문이랑 같은 레벨에서 else는 어떤때 쓰는 건가요?
조회수 2235회
소스코드
for i in range(10):
print(i)
if i == 9:
print("Too big - I'm giving up!")
break;
else:
print("Completed successfully")
발생하는 문제 및 실행환경
이런 코드가 있는데 왜 else를 쓰는지 모르겠습니다.
처음 봤을때는 for
문이 시작도 못했으면 (if False
등) else
문이 실행되는 줄 알았는데
실행하고보니 break
를 지우면 else
도 실행되고, break
를 안지우면 else
는 실행이 안되더군요.
for-else
문은 어떤 때 써야 하나요?
1 답변
-
for-else 문을 쓰는 경우는 보통 "이터러블안에 어떤 아이템을 찾아. 근데 아무것도 못 찾으면 ..." 의 의미로 씁니다.
found_obj = None for obj in objects: if obj.key == search_key: found_obj = obj break #아이템을 찾았으면 break - else문은 실행 안됨 else: print 'No object found.' #아이템을 못 찾은 경우만 실행됨
이걸 캡슐화해서 함수로 쓰면
def find_obj(search_key): for obj in objects: if obj.key == search_key: return obj
아니면 리스트 내장을 쓰면
matching_objs = [o for o in objects if o.key == search_key] if matching_objs: print 'Found', matching_objs[0] else: print 'No object found.'
댓글 입력