For..else is Crazy in Python
for...else 및 while...else는 Python의 혼란스러운 기능 중 하나로, 특히 'else'라는 이름 때문에 직관적으로 이해하기 어렵습니다. 🤯
else 블록은 루프가 break나 return 없이 자연스럽게 완료되었을 때만 실행됩니다. 🔄
- 화자는
else 블록을 루프가 성공적으로 완료되었을 때 실행되는 '성공 블록'으로 비유합니다. ✅
for 루프 예시: 모든 요소를 순회하면 else 블록이 실행되지만, 특정 조건에서 break가 발생하면 else 블록은 건너뛰어집니다. 🛑
while 루프 예시: 조건이 자연스럽게 False가 되어 루프가 종료되면 else 블록이 실행되지만, break로 인해 조기 종료되면 실행되지 않습니다. ⏳
- 실제 활용 사례: 필수 파일 존재 여부 확인. 모든 필수 파일이 있으면
else 블록이 실행되어 "모든 파일이 존재합니다"를 출력하고, 누락된 파일이 있으면 break되어 else 블록이 실행되지 않습니다. 📁
- 이 기능은 별도의 플래그 변수를 사용하고 로직을 분리하는 대신 코드를 간결하게 만들 수 있습니다. ✨
- 가장 중요한 것은 코드의 가독성입니다.
else 블록이 모호하게 느껴질 수 있으므로, 팀 작업 시에는 주석을 추가하여 명확성을 높이는 것이 좋습니다. 📖
for...else는 Python 초창기부터 존재했던 기능이며, 이름이 혼란스러워 많은 개발자들이 사용을 꺼리는 경향이 있습니다. 🕰️
- 향후 Python 버전에서 대체 이름이 추가될 가능성도 있지만, 기존 이름이 변경될 가능성은 낮습니다. 💡
데브허브 | DEVHUB | For..else is Crazy in Python