왜 if만으로는 부족한가: Python에서 try/except 이해하기

발행: (2025년 12월 20일 오후 08:29 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

Python에서 try/except 이해하기: if만으로는 부족한 이유

if만으로는 충분하지 않은가

Python으로 팁 계산기를 작성하면서(전체 코드는 제 GitHub에서 확인할 수 있습니다), if 조건을 사용했음에도 불구하고 오류가 발생한다는 것을 깨달았습니다.

그 이유는 if 조건이 형 변환이 끝난 뒤에 실행되지만, 오류는 변환 중에 발생하기 때문입니다.

def get_bill_amount(prompt: str) -> float:
    while True:
        value = input(prompt).strip()
        try:
            amount = float(value)
            if amount > 0:
                return amount
            print("Amount must be greater than 0.")
        except ValueError:
            print("Please enter a valid number.")
  • 예상 사용자 입력: 0보다 큰 숫자
  • 형 불일치: 사용자가 abc와 같은 문자열을 입력했을 때
  • 오류: 프로그램이 ValueError: could not convert string to float와 함께 충돌함

핵심은 float(value)가 위험한 연산이라는 점입니다. 변환에 실패하면 Python은 if 조건을 검사하기도 전에 오류를 발생시킵니다.

value.isdigit()을 사용하면 안전해 보일 수 있지만, 12.5, -3 혹은 공백이 포함된 10과 같은 유효한 입력에서는 동작하지 않습니다. 그래서 try/except가 존재합니다.

경험 법칙

  • if → 논리(규칙, 범위, 조건) 검사
  • try/except → 충돌 방지(형 변환 같은 잘못된 연산)

항상 규칙을 검증할 때는 if를 사용하고, 프로그램이 충돌하지 않도록 보호할 때는 try/except를 사용하세요.

Back to Blog

관련 글

더 보기 »

학습 여정을 기록하는 36일째

오늘 나는 파이썬에서 dunder 매직 메서드를 배웠다. 매직 메서드 / dunder 메서드 파이썬은 이름이 __ 로 시작하고 __ 로 끝나는 많은 특수 메서드를 제공한다.