반응형

✅ 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()를 활용하여 전처리
반응형
'IT > Python Basic' 카테고리의 다른 글
[Python] 초급 개념11+ - 문자열 출력과 조작 특집 (0) | 2025.03.31 |
---|---|
[Python] 특집 - 십진수와 이진수 변환 (0) | 2025.03.21 |
[Python] 특집 - lambda 함수 활용법 (0) | 2025.03.19 |
[Python] 특집 - range() 함수로 리스트 다루기 (0) | 2025.03.18 |
[Python] 초급 개념21 - 파이썬 반복문의 종류 (0) | 2025.03.18 |
[Python] 초급 개념21 - sort()와 sorted() (0) | 2025.03.14 |
[Python] 튜플, 딕셔너리, 집합 개념 정리 특집 (0) | 2025.02.28 |
[python] 문자와 ASCII/Unicode 변환 - ord()와 chr() 함수 정리 (0) | 2025.02.27 |
댓글