Python 에서 문자열이 숫자만 포함하는지 확인하는 방법

PythonBeginner
지금 연습하기

소개

이 랩에서는 Python 에서 문자열이 숫자만 포함하는지 확인하는 방법을 배우게 됩니다. 이 랩은 숫자 문자열을 탐구하고 문자열의 모든 문자가 숫자 (0-9) 인지 여부를 결정하는 내장 Python 함수인 isdigit() 메서드를 소개합니다.

digit_strings.py라는 Python 파일을 생성하고 isdigit() 메서드를 사용하여 숫자만 포함하는 문자열과 숫자 외의 문자를 포함하는 문자열을 테스트합니다. 다양한 문자열 예시로 스크립트를 실행하여 True 또는 False 출력을 관찰함으로써 Python 에서 숫자 문자열을 효과적으로 식별하는 방법을 보여줍니다.

숫자 문자열 탐색

이 단계에서는 Python 에서 숫자 문자열에 대해 배우고 이를 식별하는 방법을 배우게 됩니다. 숫자 문자열은 단순히 숫자 문자 (0-9) 만 포함하는 문자열입니다. Python 은 문자열이 숫자만으로 구성되어 있는지 쉽게 확인할 수 있는 isdigit()이라는 내장 메서드를 제공합니다.

먼저, VS Code 편집기를 사용하여 ~/project 디렉토리에 digit_strings.py라는 Python 파일을 생성해 보겠습니다.

## 숫자만 포함하는 문자열 생성
digit_string = "12345"

## isdigit() 메서드를 사용하여 문자열이 숫자만 포함하는지 확인
is_digit = digit_string.isdigit()

## 결과 출력
print(is_digit)

파일을 저장합니다. 이제 python 명령을 사용하여 스크립트를 실행해 보겠습니다.

python ~/project/digit_strings.py

다음과 같은 출력을 볼 수 있습니다.

True

이는 digit_string 문자열이 숫자만 포함하고 있음을 나타냅니다.

이제 숫자 외의 문자를 포함하는 문자열로 시도해 보겠습니다.

## 숫자와 문자를 포함하는 문자열 생성
non_digit_string = "123abc"

## isdigit() 메서드를 사용하여 문자열이 숫자만 포함하는지 확인
is_digit = non_digit_string.isdigit()

## 결과 출력
print(is_digit)

digit_strings.py의 내용을 위의 코드로 바꾸고 저장합니다. 스크립트를 다시 실행합니다.

python ~/project/digit_strings.py

다음과 같은 출력을 볼 수 있습니다.

False

이는 non_digit_string 문자열이 숫자가 아닌 문자를 포함하고 있음을 나타냅니다.

isdigit() 메서드 사용

이전 단계에서 숫자 문자열의 기본 사항과 isdigit() 메서드를 사용하는 방법을 배웠습니다. 이 단계에서는 isdigit() 메서드를 자세히 살펴보고 다양한 유형의 문자열과 함께 사용하는 방법을 살펴보겠습니다.

isdigit() 메서드는 Python 의 문자열 메서드로, 문자열의 모든 문자가 숫자이면 True를 반환하고 그렇지 않으면 False를 반환합니다. 사용자 입력을 검증하거나 숫자만 포함해야 하는 데이터를 처리하기 위한 간단하면서도 강력한 도구입니다.

~/project 디렉토리의 digit_strings.py 파일을 계속 사용해 보겠습니다. 다양한 문자열로 isdigit() 메서드를 테스트하도록 스크립트를 수정하겠습니다.

먼저, 빈 문자열로 테스트해 보겠습니다.

## 빈 문자열 생성
empty_string = ""

## isdigit() 메서드를 사용하여 문자열이 숫자만 포함하는지 확인
is_digit = empty_string.isdigit()

## 결과 출력
print(is_digit)

digit_strings.py의 내용을 위의 코드로 바꾸고 저장합니다. 스크립트를 다시 실행합니다.

python ~/project/digit_strings.py

다음과 같은 출력을 볼 수 있습니다.

False

빈 문자열은 숫자를 포함하지 않으므로 isdigit()False를 반환합니다.

다음으로, 공백만 포함하는 문자열로 테스트해 보겠습니다.

## 공백만 포함하는 문자열 생성
space_string = "   "

## isdigit() 메서드를 사용하여 문자열이 숫자만 포함하는지 확인
is_digit = space_string.isdigit()

## 결과 출력
print(is_digit)

digit_strings.py의 내용을 위의 코드로 바꾸고 저장합니다. 스크립트를 다시 실행합니다.

python ~/project/digit_strings.py

다음과 같은 출력을 볼 수 있습니다.

False

공백만 포함하는 문자열은 숫자 문자열로 간주되지 않으므로 isdigit()False를 반환합니다.

마지막으로, 유니코드 숫자를 포함하는 문자열로 테스트해 보겠습니다.

## 유니코드 숫자를 포함하는 문자열 생성
unicode_digit_string = "一二三" ## 이것들은 중국 숫자입니다.

## isdigit() 메서드를 사용하여 문자열이 숫자만 포함하는지 확인
is_digit = unicode_digit_string.isdigit()

## 결과 출력
print(is_digit)

digit_strings.py의 내용을 위의 코드로 바꾸고 저장합니다. 스크립트를 다시 실행합니다.

python ~/project/digit_strings.py

다음과 같은 출력을 볼 수 있습니다.

False

isdigit() 메서드는 ASCII 숫자 (0-9) 에 대해서만 True를 반환하며, 숫자를 나타내는 다른 유니코드 문자에 대해서는 반환하지 않습니다.

숫자가 아닌 문자 확인

이 단계에서는 문자열에 숫자 아닌 문자가 포함되어 있는지 식별하는 방법을 배우게 됩니다. isdigit() 메서드는 모든 문자가 숫자인지 확인하는 데 유용하지만, 때로는 적어도 하나의 숫자 아닌 문자가 있는지 알아야 할 필요가 있습니다.

문자열을 반복하고 각 문자를 개별적으로 확인하여 이를 수행할 수 있습니다. ~/project 디렉토리의 digit_strings.py 파일을 수정하여 이를 구현해 보겠습니다.

def has_non_digit(input_string):
  """
  문자열에 숫자 아닌 문자가 있는지 확인합니다.
  """
  for char in input_string:
    if not char.isdigit():
      return True  ## 숫자 아닌 문자 발견
  return False  ## 숫자 아닌 문자 없음


## 테스트 케이스
string1 = "12345"
string2 = "123abc"
string3 = "  123"

print(f"'{string1}' has non-digit characters: {has_non_digit(string1)}")
print(f"'{string2}' has non-digit characters: {has_non_digit(string2)}")
print(f"'{string3}' has non-digit characters: {has_non_digit(string3)}")

digit_strings.py의 내용을 위의 코드로 바꾸고 저장합니다. 이제 python 명령을 사용하여 스크립트를 실행해 보겠습니다.

python ~/project/digit_strings.py

다음과 같은 출력을 볼 수 있습니다.

'12345' has non-digit characters: False
'123abc' has non-digit characters: True
'  123' has non-digit characters: True

이 스크립트에서는 입력 문자열의 각 문자를 반복하는 has_non_digit() 함수를 정의합니다. not char.isdigit()를 사용하여 숫자가 아닌 문자를 찾으면 즉시 True를 반환합니다. 루프가 숫자 아닌 문자를 찾지 않고 완료되면 False를 반환합니다.

이 접근 방식을 사용하면 문자열에 숫자가 아닌 문자가 있는지 빠르게 확인할 수 있으며, 이는 데이터 유효성 검사 및 기타 작업에 유용할 수 있습니다.

요약

이 랩에서는 Python 에서 문자열이 숫자만 포함하는지 확인하는 방법을 살펴보았습니다. 숫자 문자열은 숫자 문자 (0-9) 로만 구성되며, Python 은 이를 쉽게 식별하기 위해 내장된 isdigit() 메서드를 제공한다는 것을 배웠습니다.

isdigit() 메서드를 숫자만 포함하는 문자열과 함께 사용하여 True를 반환하고, 숫자 아닌 문자를 포함하는 문자열과 함께 사용하여 False를 반환하는 연습을 했습니다. 이는 문자열을 검증하고 문자열이 완전히 숫자로 구성되어 있는지 확인하는 메서드의 기능을 보여주었습니다.