파이썬에서는 문자열이 문자로 이루어져 있는지, 숫자로 이루어져 있는지 판별하는 함수들이 몇개 있다!
바로~ isalpha(), isalnum(), isnumeric(), isdigit(), isdecimal() 함수!
각 함수의 특징 및 예제를 알아보자!
영문이나 한글인지를 확인하는 isalpha()
문자열이 영문이나 한글로 이루어져 있다면 True를 반환하고
띄어쓰기, 숫자, 특수문자가 있으면 False를 반환한다..!
문자만 있어야하는 상황에서 예외처리할 때 주로 사용한다 !
""" isalpha() 예제 """
string = ['Korean과영문', '띄어 쓰기 blank', '숫자섞임1', '특수_문자']
for n, s in enumerate(string):
print(string[n], ": ", s.isalpha())
# Korean과영문 : True
# 띄어 쓰기 blank : False
# 숫자섞임1 : False
# 특수_문자 : False
영문이나 한글, 또는 숫자인지를 확인하는 isalnum()
문자열이 영문이나 한글, 또는 숫자로 이루어져 있다면 True를 반환하고
띄어쓰기, 특수문자가 있으면 False를 반환한다..!
ID 등을 확인할 때 사용하는데 잘은 안쓰는 듯 하다..^_^
""" isalnum() 예제 """
string = ['Korean과영문', '띄어 쓰기 blank', '숫자섞임1', '특수_문자']
for n, s in enumerate(string):
print(string[n], ": ", s.isalnum())
# Korean과영문 : True
# 띄어 쓰기 blank : False
# 숫자섞임1 : True
# 특수_문자 : False
숫자인지를 판별하는 isnumeric(), isdigit(), isdecimal()
숫자를 판별하는 중에는 3가지 함수들이 있는데 미묘하게 사용법이 다르다!
기본은 일반 숫자는 모두 True로 처리한다는 것 !
isnumeric()
제곱근, 분수 등은 True로 반환하지만,
문자열에 '특수문자'가 포함된 경우에는 False로 반환한다..!
""" isnumeric() 예제 """
number = ['95', '2²', '½', '1/2', '-12', '2.1']
for n, num in enumerate(number):
print(number[n], ": ", num.isnumeric())
# 95 : True
# 2² : True
# ½ : True
# 1/2 : False
# -12 : False
# 2.1 : False
isnumeric()
문자열이 '숫자'처럼 생겼다면 True를 반환하고 그게 아니라면 False를 반환한다..!
""" isdigit() 예제 """
number = ['95', '2²', '½', '1/2', '-12', '2.1']
for n, num in enumerate(number):
print(number[n], ": ", num.isdigit())
# 95 : True
# 2² : True
# ½ : False
# 1/2 : False
# -12 : False
# 2.1 : False
isdecimal()
문자열이 int로 변환 가능하다면 True를 반환하는 함수로..
(내가) 숫자 관련 처리할 때 주로 isdigit과 함께 가장 많이 사용하는 함수다..!
""" isdecimal() 예제 """
number = ['95', '2²', '½', '1/2', '-12', '2.1']
for n, num in enumerate(number):
print(number[n], ": ", num.isdecimal())
# 95 : True
# 2² : False
# ½ : False
# 1/2 : False
# -12 : False
# 2.1 : False
결론
오늘은 문자열이 문자인지 숫자인지 확인하는 함수를 알아보았다...
근데 사실 난 이런 함수들로 입출력을 받는 것보다는
정규표현식 regular expressions를 사용하는 걸 선호한다..
상황에 잘 맞게 쓰면 될듯 하고 다음에는 정규식 포스팅을 해보겠다..^_^