<개인공부>/[Python]

[python] 파이썬 isdigit 숫자 판별

사용자 BlockDMask 2021. 7. 16. 00:30
반응형

안녕하세요. BlockDMask 입니다.
오늘은 파이썬에서 문자열이 숫자로 이루어졌는지 확인하는 isdigit 에 대해서 이야기해보려합니다.

 

파이썬 isdigit 설명


1-1) isdigit 설명

isdigit은 string 클래스에 있는 메서드 입니다.
즉 문자열.isdigit() 이런식으로 사용하는 메서드 입니다.

str.isdigit()

문자열이 '숫자'로만 이루어져있는지 확인하는 함수 입니다.

문자가 '단 하나'라도 있다면 False를 반환하고,
모든 문자가 '숫자'로만 이루어져있으면 True를 반환합니다.

사용법
1) str.isdigit("판단하고자 하는 문자열")
2) "판단하고자 하는 문자열".isdigit()

두가지 방법 다 사용이 가능합니다.

str.isdigit() 은 음수를 뜻하는 '-', 소수점을 뜻하는 '.' 이것들을 숫자가 아닌 문자로 판단을 하기 때문에
실수나 음수를 판단하지 못합니다.
즉, "-2".isdigit(), "1.234".isdigit() 둘다 False 가 나오게 됩니다.

정리하자면 "오직 0을 포함한 양수형 정수로만 이루어진 문자열"만 isdigit에서 True가 나올 수 있습니다.
추가적으로 지수를 뜻하는 n제곱 2³, 3², 4² 이것도 True가 올 수 있습니다.

 

1-2) 파이썬 isdigit 예제

a = "BlockDMask"  # 문자로만 이루어짐
b = "1234Blog"    # 문자 + 숫자
c = "131231"      # 숫자
d = "-234"        # 음수
e = "1.23"        # 소수점
f = "3²"          # 3의 2제곱 기호 숫자
g = "⅔"           # 수학 기호 숫자 2/3
h = "0"           # 0
i = "0123"        # 0 으로 시작한 숫자

# str.isdigit("문자열")
print(f"str.isdigit('{a}') : {str.isdigit(a)}")
print(f"str.isdigit('{b}') : {str.isdigit(b)}")
print(f"str.isdigit('{c}') : {str.isdigit(c)}")
print(f"str.isdigit('{d}') : {str.isdigit(d)}")
print(f"str.isdigit('{e}') : {str.isdigit(e)}")
print(f"str.isdigit('{f}') : {str.isdigit(f)}")
print(f"str.isdigit('{g}') : {str.isdigit(g)}")
print(f"str.isdigit('{h}') : {str.isdigit(h)}")
print(f"str.isdigit('{i}') : {str.isdigit(i)}")

print()

# "문자열".isdigit()
print(f"'{a}'.isdigit() : {a.isdigit()}")
print(f"'{b}'.isdigit() : {b.isdigit()}")
print(f"'{c}'.isdigit() : {c.isdigit()}")
print(f"'{d}'.isdigit() : {d.isdigit()}")
print(f"'{e}'.isdigit() : {e.isdigit()}")
print(f"'{f}'.isdigit() : {f.isdigit()}")
print(f"'{g}'.isdigit() : {g.isdigit()}")
print(f"'{h}'.isdigit() : {h.isdigit()}")
print(f"'{i}'.isdigit() : {i.isdigit()}")

결과에서 보시면 str.isdigit() 함수
문자로만 이루어지거나, 문자가 하나라도 있는 경우는 False를 반환하는 것을 알 수 있습니다.
앞서 이야기 드렸듯 "-234" 음수나 "1.23" 과 같은 실수도 False로 반환 하는 것을 알 수 있습니다. -, . 을 문자로 인식했기 때문입니다.

오직 0을 포함한 양수로 이루어진 숫자와 지수만 True로 반환하는 것을 볼 수 있습니다.

 


추가적으로 알파벳으로만 이루어져있는지 확인하는 isalpha 메서드나, 
0~9 사이의 숫자로만 이루어져있는 경우를 판단하는 isdecimal 메서드가 궁금하시다면 [바로가기] 포스팅에서 확인할 수 있습니다.

오늘은 이렇게 isdigit 에 대해서 알아보았습니다. 감사합니다.

반응형