공부/Python

[Python] for-else while-else

순제로 2024. 4. 16. 10:46
728x90

Python의 while-else와 for-else 구문에 대해 알아보겠습니다. 이 구문들은 다른 프로그래밍 언어에서 흔히 볼 수 없는, Python 특유의 기능입니다. 각각의 구문이 어떻게 작동하고, 어떤 상황에서 유용하게 사용될 수 있는지 설명하겠습니다.

while-else 구문

Python에서 `while` 루프는 조건이 True인 동안 반복적으로 코드 블럭을 실행합니다. 그리고 `else`는 `while` 루프가 더 이상 실행할 조건이 없을 때, 즉 조건이 False가 되어 루프가 정상적으로 종료될 때 실행됩니다. 만약 루프 내에서 `break`를 사용해 루프를 강제로 종료한다면, `else` 블럭은 실행되지 않습니다.

count = 0

while count < 3:
print(f"Count: {count}")
count += 1
else:
print("루프가 정상적으로 종료되었습니다.")

 

for-else 구문

`for` 루프는 반복 가능한 객체(리스트, 튜플, 딕셔너리 등)를 순회합니다. `else` 구문은 `for` 루프가 반복 가능한 객체의 모든 요소를 순회하고 난 후에 실행됩니다. 마찬가지로, `for` 루프 내에서 `break`를 사용해 루프를 조기에 종료한다면, `else` 블럭은 실행되지 않습니다.

numbers = [1, 2, 3]

for num in numbers:
print(f"Number: {num}")
else:
print("루프가 모든 요소를 순회하고 종료되었습니다.")

주의사항

- `while` 또는 `for` 루프가 한 번도 실행되지 않는 경우에도, `else` 블럭은 실행됩니다. 이는 루프의 조건이 처음부터 False인 경우에도 해당됩니다.
- `break`를 사용해 루프를 조기 종료하는 경우는 `else` 블럭이 실행되지 않습니다. 이는 `else` 블럭이 루프가 중단 없이 '정상적으로' 종료될 때만 실행되도록 설계되었기 때문입니다.

이러한 구문은 특정 조건이 충족될 때까지 반복하고, 그 조건이 더 이상 충족되지 않을 때 추가 작업을 수행해야 할 때 유용합니다. 예를 들어, 어떤 리스트에서 특정 요소를 찾고 찾지 못했을 때만 특정 작업을 수행하고자 할 때 사용할 수 있습니다.

 

 

참고자료


[1] star가 되고나서 - [Python] 파이썬 for - else, while - else 구문 사용법과 예시

https://star7sss.tistory.com/464)

 

[Python] 파이썬 for - else, while - else 구문 사용법과 예시

파이썬에서만 볼 수 있는 특수한 구문 형태인 for - else문과 while - else문을 알아보겠습니다. [ Contents ] 1. For - else for i in range(n): if i == 4: break else: print("n은 4이하 입니다.") for문에서의 else문은 "break

star7sss.tistory.com

[2] 위키독스 - 2.5 for-else와 while-else - 왕초보를 위한 Python

https://wikidocs.net/190098

 

2.5 for-else와 while-else

조건문에 `else`를 쓸 수 있다는 건 앞에서 살펴봤는데요, 파이썬에서는 반복문에도 `else`를 쓸 수 있답니다. ## for-else 다음 for 문에서는 리스트의 원소…

wikidocs.net

[3] TISTORY - [Python] for ~ else, while ~ else를 사용하는 방법

https://skeo131.tistory.com/69

 

[Python] for ~ else, while ~ else를 사용하는 방법

보통 else를 쓸 경우를 따질 땐 if ~ else만 생각하지만 for loop에서도 else를 사용할 수 있다. 이 때 else는 for loop에서 iterable이 소진되었을 때 else 구문이 실행된다. 예시는 다음과 같다. for i in range(2, 1

skeo131.tistory.com


[4] 인프런 - (파이썬)for-else를 대체할 수 있을까? - 김한울님의 블로그

https://www.inflearn.com/blogs/127

 

(파이썬)for-else를 대체할 수 있을까? - 김한울님의 블로그 - 인프런 | 커뮤니티

(파이썬)for-else를 대체할 수 있을까? - # 행맨 게임 만들기 실습 # 제작 일자: 2021. 1. 28. # 제작자: 김한울 # 1차 피드백: 2021. 2. 2. # 몇 가지 이슈에 대해 수정하였다. # 수정 1: 불필요한 인수, 디버깅

www.inflearn.com

 

728x90