파이썬

[파이썬] isdecimal(), isdigit(), isnumeric() 차이

앤테바 2022. 3. 2. 07:45
반응형

파이썬에서 숫자를 구별 및 판별하는 builtin 함수를 제공합니다.

isdecimal(), isdigit(), isnumeric()

 

함수명으로는 셋 다 거의 비슷한 역할을 할 것 같은데 미묘한 차이가 있습니다.

isnumeric() 함수가 숫자에 대해서 폭 넓은 의미를 가집니다.

isdecimal(), isdigit(), isnumeric() 포함 관계

isdecimal(), isdigit(), isnumeric()  비교 테이블

함수 설명

함수명 함수 설명
str.isdecimal() 문자열 내의 모든 문자가 십진수 문자이고, 적어도 하나의 문자가 존재하는 경우 True를 돌려주고, 그렇지 않으면 False를 돌려줍니다. 십진수 문자는 십진법으로 숫자를 구성할 때 사용될 수 있는 문자들입니다. 
str.isdigit() 문자열 내의 모든 문자가 디짓이고, 적어도 하나의 문자가 존재하는 경우 True를 돌려주고, 그렇지 않으면 False를 돌려줍니다. 디짓에는 십진수 문자와 호환성 위 첨자 숫자와 같은 특수 처리가 필요한 숫자가 포함됩니다. 여기에는 카로슈티 숫자처럼 십진법으로 숫자를 구성할 때 사용될 수 없는 것들이 포함됩니다.
str.isnumeric() 문자열 내의 모든 문자가 숫자이고, 적어도 하나의 문자가 존재하는 경우 True를 돌려주고, 그렇지 않으면 False를 돌려줍니다. 숫자는 디짓과 유니코드 숫자 값 속성을 갖는 모든 문자를 포함합니다.

(참고 : https://docs.python.org/ko/3/library/stdtypes.html)

 

스트링 타입 예시 문자 isdecimal() isdigit() isnumeric()
십진수 숫자 '0123456789' True True True
윗첨자 숫자 '3²' False True True
fractions, 로마 숫자 '½' or 'ↁ'  False False True

 

 

함께 보면 좋은 글:

https://miguendes.me/python-isdigit-isnumeric-isdecimal

https://stackoverflow.com/questions/44891070/whats-the-difference-between-str-isdigit-isnumeric-and-isdecimal-in-python

https://datagy.io/python-isdigit/

반응형