파이썬에서 스트링이 숫자(정수+실수 합쳐서)인지 어떻게 확인할 수 있을까요?


isdigit()을 쓰면 정수만 True가 되고 실수형은 False가 떠요 isfloat()같은 건 없는것 같던데 어떡하죠?

  • 2016년 01월 06일에 작성됨

조회수 296


1 답변


좋아요
0
싫어요
채택취소하기

예외처리를 써보세요.

간단하게 다음과 같이 쓸 수 있습니다

# coding=utf-8
def is_number(num):
    try:
        float(num)
        return True #num을 float으로 변환할 수 있는 경우
    except ValueError: #num을 float으로 변환할 수 없는 경우
        return False

is_number("3.24242424")
is_number("5")

다만, 위의 방법은 is_number("NaN") 에서는 True를 return 하므로 이런 예외도 다 False로 처리하고 싶다면 다음과 같이 사용하세요

# coding=utf-8
def is_number(num):
    try:
        judge = str(float(num))
        return False if(judge=='nan' or judge=='inf' or judge =='-inf') else True
    except(ValueError, type): #num을 float으로 변환 할 수 없는 경우
        return False
  • 2016년 01월 06일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close