본문 바로가기

프로그래밍 언어/python

파이썬에서 루프 후의 else 사용을 피하자

파이썬에서 루프 후의 else 사용을 피하자

파이썬은 다른 프로그래밍 언어와 달리 for나 while 루프 뒤에 else 블록을 사용할 수 있는 독특한 기능을 제공합니다. 하지만 이 기능은 코드의 가독성을 떨어뜨릴 수 있으므로 사용을 피하는 것이 좋습니다. 이 글에서는 루프 후 else 블록의 사용이 왜 혼란을 일으킬 수 있는지 예제를 통해 살펴보겠습니다.

for/while 뒤의 else란?

파이썬에서 for나 while 루프 뒤에 오는 else 블록은 루프가 중간에 break로 끊기지 않고 정상적으로 끝났을 때 실행됩니다. 처음 보는 사람들에게는 이 문법이 혼란스러울 수 있습니다.

예제: for 루프 후의 else 사용

numbers = [1, 3, 5, 7]
for number in numbers:
    if number % 2 == 0:
        print("짝수 발견")
        break
else:
    print("짝수 없음")

이 예제에서 else 블록은 for 루프가 break 없이 완료되었을 때, 즉 리스트에 짝수가 없을 때 실행됩니다.

문제점

이러한 사용법은 다음과 같은 문제를 야기할 수 있습니다:

  • 가독성 저하: else 블록이 루프와 관련 없는 것처럼 보이기 때문에 코드를 읽는 사람에게 혼란을 줄 수 있습니다.
  • 오해의 소지: 다른 프로그래밍 언어에서는 루프 후에 else 문법이 없기 때문에, 파이썬에서 이 문법을 보는 것은 직관적이지 않습니다.

대안

루프 후 else를 사용하는 대신, 루프 내에서 조건을 명확히 하여 코드의 의도를 분명하게 만드는 것이 좋습니다.

개선된 예제

numbers = [1, 3, 5, 7]
found_even = False
for number in numbers:
    if number % 2 == 0:
        found_even = True
        print("짝수 발견")
        break

if not found_even:
    print("짝수 없음")

이렇게 하면 코드의 의도가 더 명확해지고, 다른 프로그래밍 언어에 익숙한 개발자들에게도 이해하기 쉽습니다.

결론

루프 후

의 else 블록은 파이썬의 독특한 기능이지만, 그 사용은 코드의 가독성을 저하시키고 혼란을 야기할 수 있습니다. 더 명확하고 이해하기 쉬운 코드를 작성하기 위해, 이 기능은 피하는 것이 좋습니다. 대신, 루프 내부의 로직을 명확하게 구성하고 필요한 경우 추가적인 조건문을 사용하여 코드의 의도를 분명히 나타내는 것을 권장합니다.