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

조회수 8998회

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

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
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)