Python/Python 기초 정리
[Python] 문자열 관련 함수 : 숫자 포함 관련 함수
Jake the Dog
2022. 3. 19. 12:16
반응형
숫자 포함 관련 함수
isalnum()
- 문자열이 문자와 숫자로만 이루어졌는지 여부를 boolean 값으로 반환
- 문자열.isalnum()
- 한글도 true값을 반환한다
- 공백도 판단하여 공백이 포함되어있으면 false
- 특수문자는 false
a = "ab cd efg"
b = "abcdefg"
a = "ab cd efg"
b = "abcdefg"
c = "123"
d = "1 2 3"
e = "abc123"
f = "abc 123"
g = "가나다"
h = "≥"
print("a.isalnum() >>> ", a.isalnum())
print("b.isalnum() >>> ", b.isalnum())
print("c.isalnum() >>> ", c.isalnum())
print("d.isalnum() >>> ", d.isalnum())
print("e.isalnum() >>> ", e.isalnum())
print("f.isalnum() >>> ", f.isalnum())
print("g.isalnum() >>> ", g.isalnum())
print("h.isalnum() >>> ", h.isalnum())
결과
a.isalnum() >>> False
b.isalnum() >>> True
c.isalnum() >>> True
d.isalnum() >>> False
e.isalnum() >>> True
f.isalnum() >>> False
g.isalnum() >>> True
h.isalnum() >>> False
isalpha()
- 문자열이 문자로만 이루어졌는지 여부를 boolean 값으로 반환
- 문자열.isalpha()
- 한글도 true값을 반환한다
- 공백도 판단하여 공백이 포함되어있으면 false
- 특수문자는 false
a = "ab cd efg"
b = "abcdefg"
c = "123"
d = "1 2 3"
e = "abc123"
f = "abc 123"
g = "가나다"
h = "≥"
print("a.isalpha() >>> ", a.isalpha())
print("b.isalpha() >>> ", b.isalpha())
print("c.isalpha() >>> ", c.isalpha())
print("d.isalpha() >>> ", d.isalpha())
print("e.isalpha() >>> ", e.isalpha())
print("f.isalpha() >>> ", f.isalpha())
print("g.isalpha() >>> ", g.isalpha())
print("h.isalpha() >>> ", h.isalpha())
결과
a.isalpha() >>> False
b.isalpha() >>> True
c.isalpha() >>> False
d.isalpha() >>> False
e.isalpha() >>> False
f.isalpha() >>> False
g.isalpha() >>> True
h.isalpha() >>> False
isdigit() / isnumeric() / isdecimal()
- 문자열이 숫자로만 되어있는지 여부를 boolean값으로 반환
- 문자열.isdigit() / 문자열.isnumeric() / 문자열.isdecimal()
- 숫자인지만 판단하기 때문에 3.19와 같이. 소수점 표현이 들어가더라도 false 처리한다
- isdigit : 단일 글자가 숫자 모양으로 생겼는지를 판단하여 반환한다. 숫자처럼 생긴 모든 글자를 숫자로 판단한다.
- isnumeric : 숫자 값 표현에 해당하는 문자열까지 인정한다. 제급근, 분수, 거듭제곱 특수문자도 True로 반환.
- isdecimal : 주어진 문자열이 int형으로 변환이 가능한가의 여부를 반환한다. 특수문자 중 숫자 모양을 숫자로 치지 않는다.
- 특수문자를 인정하지 않고 숫자로 되었는지만 판단하려면 isdecimal을 사용하는 것이 가장 안전해 보인다.
a = "3"
b = "3²"
c = "3**2"
d = "3.14"
print("a.isdigit() >>> ", a.isdigit()) # 숫자이기 때문에 True
print("a.isnumeric() >>> ", a.isnumeric()) # 숫자이기 때문에 True
print("a.isdecimal() >>> ", a.isdecimal()) # 숫자이기 때문에 True
print("b.isdigit() >>> ", b.isdigit()) # 모양이 숫자여서 True
print("b.isnumeric() >>> ", b.isnumeric()) # 숫자를 표현한 특수문자라 True
print("b.isdecimal() >>> ", b.isdecimal()) # int형 반환이 안되기 때문에 False
print("c.isdigit() >>> ", c.isdigit()) # 계산식이지만 문자가 포함되어 False
print("c.isnumeric() >>> ", c.isnumeric()) # 계산식이지만 문자가 포함되어 False
print("c.isdecimal() >>> ", c.isdecimal()) # 계산식이지만 int변환이 되지 않아 False
print("d.isdigit() >>> ", d.isdigit()) # 소숫점 표현이지만 .이라는 문자가 포함되어 False
print("d.isnumeric() >>> ", d.isnumeric()) # 소숫점 표현이지만 .이라는 문자가 포함되어 False
print("d.isdecimal() >>> ", d.isdecimal()) # 소숫점 표현이지만 .이라는 문자가 포함되어 False
# 결과
a.isdigit() >>> True
a.isnumeric() >>> True
a.isdecimal() >>> True
b.isdigit() >>> True
b.isnumeric() >>> True
b.isdecimal() >>> False
c.isdigit() >>> False
c.isnumeric() >>> False
c.isdecimal() >>> False
d.isdigit() >>> False
d.isnumeric() >>> False
d.isdecimal() >>> False
반응형