본문 바로가기
IT/Python Basic

[python] 파이썬 isdigit() 함수 완벽 가이드

by Echinacea 2025. 3. 19.
반응형

 

✅ isdigit() 함수란?

isdigit() 함수는 문자열이 숫자로만 이루어져 있는지 확인하는 함수입니다.
문자열이 모두 숫자(0~9)로 이루어져 있으면 True, 하나라도 숫자가 아니면 False를 반환합니다.


 

 

📌 isdigit() 기본 예제

print("123".isdigit())   # ✅ True
print("4567".isdigit())  # ✅ True
print("12a3".isdigit())  # ❌ False (문자 'a' 포함)
print("98.7".isdigit())  # ❌ False (소수점 포함)
print("Ⅳ".isdigit())     # ❌ False (로마 숫자 'Ⅳ'는 숫자로 인식되지 않음)

 

 

✅ isdigit() 특징

표현 결과 설명

"123".isdigit() ✅ True 정수만 포함
"3.14".isdigit() ❌ False 소수점 포함
"-123".isdigit() ❌ False 음수 부호 포함
"1a2b3".isdigit() ❌ False 문자 포함
" 123 ".isdigit() ❌ False 공백 포함

 

 

✅ isdigit() 활용 예제

🔹 1️⃣ 문자열이 숫자로만 이루어졌는지 확인

s = "2024"
if s.isdigit():
    print(f'"{s}"는 숫자로만 구성된 문자열입니다.')
else:
    print(f'"{s}"에는 숫자가 아닌 문자가 포함되어 있습니다.')

출력:

"2024"는 숫자로만 구성된 문자열입니다.

 

 

🔹 2️⃣ 문자열에서 숫자만 필터링하기

s = "a1b2c3"
digits = [char for char in s if char.isdigit()]
print(digits)  # ['1', '2', '3']

 

 

🔹 3️⃣ 문자열이 정수인지 확인하고 변환하기

s = "12345"
if s.isdigit():
    number = int(s)  # 정수 변환
    print(f"정수 변환 성공: {number}")
else:
    print("숫자가 아닙니다.")

 

 

🔹 4️⃣ 리스트에서 숫자만 추출하여 합 구하기

words = ["10", "apple", "30", "banana", "50"]
total = sum(int(word) for word in words if word.isdigit())
print(total)  # 90

 

 

❌ isdigit()의 한계

isdigit()은 정수만 인식하고, 소수점/음수 부호가 포함된 숫자는 False를 반환합니다.
✔ 소수(3.14), 음수(-5), 공백 포함(" 123 "), 소수점 포함("3.14") 등은 False

 

✅ 소수점, 음수도 포함하여 숫자 확인하는 방법 (replace() 활용)

s = "-123.45"

# 소수점과 음수 부호도 포함하여 숫자 확인
if s.replace('.', '', 1).replace('-', '', 1).isdigit():
    print(f'"{s}"는 숫자로 변환 가능합니다.')
else:
    print(f'"{s}"는 숫자가 아닙니다.')

 

출력:

"-123.45"는 숫자로 변환 가능합니다.

 

 

✅ isdigit() 요약

  • 정수를 확인할 때 isdigit() 사용
  • 소수/음수도 포함하려면 replace()를 활용하여 전처리

 

반응형

댓글