-
[Python] 문자열이 숫자인지 문자인지 판단하는 법(isdigit(), isalpha(), isalnum(), isdecimal(), isnumeric()Programming Language/Python 2022. 8. 8. 22:52
파이썬에서 문자열 내부에 있는 문자들이 과연 숫자인지, 문자인지 판별하는 방법을 알아보겠다.
1. 문자인지 판단하는 법 [isalpha]
isalpha()라는 함수를 사용해서 확인할 수 있으며 문자열 내부에 공백/기호/숫자가 존재할 경우 False가 된다.
s1 = 'ABC' s2 = 'hello world' s3 = '1a2b' s4 = '한글' s5 = '한글abc' s6 = '한글123' s7 = '한글?' s8 = '한 글' print(s1.isalpha()) #True print(s2.isalpha()) #False print(s3.isalpha()) #False print(s4.isalpha()) #True print(s5.isalpha()) #True print(s6.isalpha()) #False print(s7.isalpha()) #False print(s8.isalpha()) #False
문자열 내부에 오롯이 문자만 있을 땐 True, 숫자, 공백, 기호가 끼어 있을 땐 False가 출력된다.
한글도 지원해준다.
2. 숫자인지 판단하는 법
숫자인지 판단하는 종류는 여러 가지 함수가 있다.
(1) isdigit()
주어진 문자열이 숫자인지 판별하는 함수다. 다만, 3² 같이 지수가 숫자 모양으로 생겼으면 숫자로 판단한다.
s1 = '1234' s2 = '123a' s3 = '1 23' s4 = '010-1234-5678' s5 = '123번' s6 = '3²' print(s1.isdigit()) #True print(s2.isdigit()) #False print(s3.isdigit()) #False print(s4.isdigit()) #False print(s5.isdigit()) #False print(s6.isdigit()) #True
숫자만 들어있어야 하고 문자, 기호, 공백이 들어있으면 False이다.
3²은 숫자 모양으로만 구성되어 있으므로 True이다.
(2) isdecimal()
isdigit()과 거의 동일하나, 3² 같은 수는 ²를 특수 문자로 판단하고 단순 숫자만 판단한다.
s1 = '1234' s2 = '123a' s3 = '1 23' s4 = '010-1234-5678' s5 = '123번' s6 = '3²' print(s1.isdecimal()) #True print(s2.isdecimal()) #False print(s3.isdecimal()) #False print(s4.isdecimal()) #False print(s5.isdecimal()) #False print(s6.isdecimal()) #False
isdigit()과 달리 지수를 문자로 판단해서 False를 리턴하는 모습을 볼 수 있다.
(3) isnumeric()
지수, 분수까지 모두 다 숫자라고 판단한다.
s1 = '1234' s2 = '123a' s3 = '1 23' s4 = '010-1234-5678' s5 = '123번' s6 = '3²' s7 = '½' print(s1.isnumeric()) #True print(s2.isnumeric()) #False print(s3.isnumeric()) #False print(s4.isnumeric()) #False print(s5.isnumeric()) #False print(s6.isnumeric()) #True print(s7.isnumeric()) #True
3²이나 ½도 모두 숫자라고 판단했다.
범위를 따져보자면 isnumeric() >> isdigit() >> isdecimal()로 포함관계가 성립하는 듯하다.
3. 문자, 숫자만 있는지 판별하는 법 [isalnum]
문자, 숫자 외에 공백이나 기호가 있는지 구별해서 알려준다.
s1 = '1234' s2 = '123a' s3 = '1 23' s4 = '010-1234-5678' s5 = '123번' s6 = '3²' s7 = '½' print(s1.isalnum()) #True print(s2.isalnum()) #True print(s3.isalnum()) #False print(s4.isalnum()) #False print(s5.isalnum()) #True print(s6.isalnum()) #True print(s7.isalnum()) #True
isnumeric처럼 지수, 분수도 숫자로 여기는 범위에서 문자와 숫자로만 구성된 문자만 True를 리턴한다.
4. 마지막
이외에도 다양한 is내장함수가 있지만 기회가 될 때 차근차근 포스팅해나가도록 하겠다.
※ 틀린 내용이 있을 수 있습니다. 지적해주시면 언제든지 수정할 수 있도록 하겠습니다.
'Programming Language > Python' 카테고리의 다른 글
[Python] 파이썬에서 MySQL(MariaDB) 사용하기 (2) 2021.01.25 [Python] Jupyter Notebook 설치 (Windows용) (0) 2020.12.25 [Python] 파이썬 설치 (Windows용) (0) 2020.12.21