archive

[Python] for-else, while-else 본문

STUDY/Python

[Python] for-else, while-else

seonyounggg 2021. 2. 19. 12:10

파이썬에서는 생소하게도 for-else문이 존재한다.

처음봤을 땐 인덴트가 왜저래 했는데 파이썬에서 제공하는 문법이었다.ㅎ

 

알고리즘 짜다보면

for문이 breake되서 끝난 경우랑 끝까지 돌고 끝난 경우의 구분이 필요해서 flag변수를 종종 쓰곤 했는데 

for-else문을 통해 좀 더 간편하게 작성할 수 있다.

 

for문이 break을 통해 종료되는 것이 아니라, 끝까지 돌고 나서 종료된 경우에

else문이 실행된다.

인덴트 주의! (for와 같은 선상에 둬야 한다.)

 

다음과 같은 예제를 보자.

numbers 리스트에서 찾는 값이 있는지 검사하는 코드이다. (in, not in 연산자의 동작과 같음)

리스트에 없다면 "Not Found"를 출력하도록 하였다.

numbers = [1, 2, 3, 4, 5]

is_found = False
for i in numbers:
    if i == target_num:
        is_found = True
        break
        
if not is_found:
    print("Not Found")

이를 for-else를 이용해 다음과 같이 수정할 수 있다.

numbers = [1, 2, 3, 4, 5]

for i in numbers:
	if i == target_num:
        break
else:
	print("Not Found")

즉, Flag변수가 False일 경우 처리할 부분을 else문에 넣는다.

 

동일한 방식으로 while-else문도 사용이 가능하다.

'STUDY > Python' 카테고리의 다른 글

[Python] with as  (0) 2021.02.24
[Python] zipfile 모듈 사용법  (0) 2021.02.23
[Python] any(), all() 함수  (0) 2021.02.18
[파이썬] collections.Counter 클래스  (0) 2021.02.02
파이썬 코딩 스타일 참고  (0) 2021.01.28
Comments