이번에는 isdecimal()
, isdigit()
, isnumeric()
에 대해서 간략하게 알아보려고 한다.
사실 이 세가지는 모두 알고리즘 풀이나 코딩 테스트 문제에서 흔하게 접하면서 알아볼 수 있는 함수들이나, 이들에 대한 명확한 차이를 기록하고자 포스팅을 한다. 간략하게 보여주자면 이 셋의 관계는 다음과 같이 나타낼 수 있다:
isdecimal() <= isdigit() <= isnumeric()
조금 더 정확하게 설명하자면 다음과 같다:
>>> a = '3²'
>>> print(a.isdecimal())
>>> print(a.isdigit())
>>> print(a.isnumeric())
...
>>> False
>>> True
>>> True
isdecimal()
의 경우는 이를 숫자로 취급하지 않고, isdigit()
은 이를 숫자로 취급한다. 이유는 'isdigit()'은 단일문자가 숫자로만 이루어졌으면 숫자로 취급을 하지만, isdecimal()
의 경우, 3의제곱으로 나타난 특수 문자는 숫자로 취급하지 않기 때문이다. 그렇다면 다음의 예시를 보자:
>>> a = '½'
>>> print(a.isdecimal())
>>> print(a.isdigit())
>>> print(a.isnumeric())
...
>>> False
>>> False
>>> True
이번에는 isnumeric()
는 a
에 대하여 True
를 출력하지만, 나머지는 모두 False
를 출력하는 것을 볼 수 있다. 이유는 isnumeric()
의 경우, 숫자값으로 나타난 문자이면 어떤 방식이던 인정한다. 거듭제곱, 제곱근, 분수 등등 모두 인정을 하는 모습을 볼 수 있다.
'Python 공부하기' 카테고리의 다른 글
비트연산자 bin()에 대하여 (0) | 2020.12.01 |
---|---|
zip 내장 함수에 대하여 (0) | 2020.11.27 |
Enumerate 함수에 대하여 (0) | 2020.11.25 |
Regex(Regular Expression)에 대하여 (0) | 2020.11.15 |
super - 기반 class / 상속자(Constructor) / *args, **kwargs 알아보기 (2) | 2020.11.08 |