Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 문자열을 float로 변환할 수 있는지 확인하는 방법

개요

Python에서 문자열이 실수(float)로 변환 가능한지 확인해야 하는 경우가 자주 있습니다. 예를 들어 사용자 입력이나 외부 데이터를 처리할 때, 숫자로 변환하기 전에 해당 문자열이 유효한 실수인지 검증하면 오류를 미리 방지할 수 있습니다.

try-except 문으로 직접 변환 시도하기

가장 기본적인 방법은 float() 함수를 사용하여 문자열을 변환하는 것입니다. 변환이 성공하면 실수 값이 반환되고, 실패하면 ValueError가 발생합니다.

try:
    print(float('112.15'))
except ValueError:
    print('변환할 수 없습니다')

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

112.15

만약 문자열이 실수로 파싱될 수 없다면, ValueError가 발생하여 except 블록의 메시지가 출력됩니다.

isfloat 래퍼 함수 만들기

여러 곳에서 반복적으로 변환 가능 여부를 확인해야 한다면, 불리언(Boolean) 값을 반환하는 래퍼 함수를 만들어 사용하는 것이 편리합니다.

def isfloat(value):
    try:
        float(value)
        return True
    except ValueError:
        return False

print(isfloat('112.5'))

실행 결과:

True

참고: 다양한 입력 값에 대한 동작

isfloat 함수는 다음과 같은 값들을 처리할 때 유용하게 활용할 수 있습니다.

  • '3.14', '-0.5' → 일반적인 실수 문자열은 True
  • '10' → 정수 형태의 문자열도 float로 변환되므로 True
  • '1e-4' → 지수 표기법도 지원하므로 True
  • 'abc', '12a' → 숫자가 아닌 문자가 포함되면 False
  • '' → 빈 문자열은 False

단, 'nan'이나 'inf' 같은 특수 문자열도 float로 변환된다는 점은 유의해야 합니다. 이러한 특수 값까지 걸러내야 한다면 추가적인 검증 로직이 필요합니다.

정리

문자열을 float로 변환할 수 있는지 확인하는 가장 간결하고 안전한 방법은 try-except 구문을 활용하는 것입니다. 필요에 따라 이를 함수로 감싸 재사용하면 코드의 가독성과 유지보수성이 크게 향상됩니다.