무효 클릭 IP 추적 중...
파이썬/파이썬 기초

[python] 파이썬 for else 구문 완벽 정리

꼬예 2023. 1. 2.

[ic]for 문[/ic]과 [ic]else 구문[/ic]이 결합된 요상한 구문에 대해 알아보자.

 

 

1) [ic]for-else[/ic] 구문 생김새

numbers = [1, 3, 5]
for number in numbers:
    print(number)
else:
    print("반복문 끝")
    
# output
'''
1
3
5
반복문 끝
'''

[ic]for loop[/ic] 뒤에  [ic]else 문[/ic]을 붙여준다.

이때 [ic]else[/ic]는 [ic]for[/ic]과 같은 위치 선상이어야 한다.

 

작동방식은[ic]for[/ic] 문을 다 돌고 난 뒤 [ic]else[/ic] 구문내 코드를 실행시키는 구조다.

 

여기서 궁금증이 생긴다.

왜 굳이..?

numbers = [1, 3, 5]
for number in numbers:
    print(number)

print("반복문 끝")

[ic]else[/ic]를 안 써도 결과는 똑같기 때문이다.

 

하지만 [ic]for else[/ic] 문 장점은 [ic]break[/ic]와 함께 쓸 때 발휘된다.

 

2) [ic]for-else[/ic] with [ic] break[/ic] 

numbers = [1, 3, 5]
for number in numbers:
    if number == 3:
        break
else:
    print("반복문 끝")

리스트 원소중 [ic]3[/ic]이라는 값이 있으면 [ic]break문[/ic]에 걸려 break 되는 코드다.

결과적으로 [ic]else 문[/ic] 코드는 실행되지 않는다.

 

[ic]else 문[/ic]이 없다면?

numbers = [1, 3, 5]
for number in numbers:
    if number == 3:
        break
print("반복문 끝")

# else가 없다면 break 가 있던 없던 마지막 문 을 실행한다.
#ouput
'''
반복문 끝
'''

[ic]for loop[/ic]안에서 break에 걸려도 [ic]print("반복문 끝")[/ic] 은 실행된다.

 

이제 왜 [ic]for-else[/ic] 가 강력한지 납득이 되었을 거다.

 

그렇다면 이러한 기능을 어디에 쓰는지 응용코드를 통해 확인해 보자.

 

3) 응용 코드

리스트 안에서 특정 원소 존재여부를 확인하는 코드다.

존재여부에 따라 다른 ouput을 출력한다.

def search_list(element, search_list):
    for item in search_list:
        if item == element:
            print(f"Found element {element} in list")
            break
    else:
        print(f"Could not find element {element} in list")

search_list(5, [1, 2, 3, 4])
# Output: Could not find element 5 in list

search_list(3, [1, 2, 3, 4])
# Output: Found element 3 in list
  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글