Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 문자열의 숫자와 문자 개수 계산하기

문자열이 주어졌을 때, 그 안에 포함된 숫자와 문자(알파벳)의 총 개수를 계산해야 하는 경우가 자주 있습니다. 이번 글에서는 파이썬을 이용해 이 문제를 간단하게 해결하는 방법을 알아보겠습니다.

예시

입력 -

s = "tutorialsP0int"

출력 -

Letters: 13
Digits: 1

설명 -

주어진 문자열에 포함된 문자는 총 13개, 숫자는 총 1개입니다.

문제 해결 접근 방법

주어진 문자열에서 문자와 숫자의 총 개수를 계산하려면, 먼저 문자열 전체를 반복(iteration)하며 탐색해야 합니다. 탐색 과정에서 알파벳을 만나면 문자 카운트를 증가시키고, 숫자를 만나면 숫자 카운트를 증가시키면 됩니다.

  • 입력 문자열을 받습니다.

  • 문자열 전체를 반복하면서, 숫자를 발견하면 숫자 카운트를 1씩 증가시키고, 문자를 발견하면 문자 카운트를 1씩 증가시킵니다.

  • 반복이 끝나면 문자와 숫자의 개수를 결과로 반환합니다.

구현 예제

파이썬에서는 문자열 메서드인 isdigit()isalpha()를 활용하면 매우 직관적으로 구현할 수 있습니다.

str = "tutorialsP0int"
digit = letter = 0
for ch in str:
    if ch.isdigit():
        digit = digit + 1
    elif ch.isalpha():
        letter = letter + 1
    else:
        pass
print("Letters:", letter)
print("Digits:", digit)

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

Letters: 13
Digits: 1

코드 설명

위 코드의 동작 원리를 단계별로 살펴보겠습니다.

  • digit = letter = 0: 숫자와 문자의 개수를 저장할 변수를 각각 0으로 초기화합니다.

  • for ch in str:: 문자열의 각 문자를 하나씩 순회합니다.

  • ch.isdigit(): 현재 문자가 숫자(0~9)인지 확인하고, 참이면 digit 값을 1 증가시킵니다.

  • ch.isalpha(): 현재 문자가 알파벳인지 확인하고, 참이면 letter 값을 1 증가시킵니다.

  • else: pass: 숫자도 문자도 아닌 특수문자나 공백은 무시하고 넘어갑니다.

추가 팁

만약 숫자와 문자 외의 나머지 문자(특수문자, 공백 등)의 개수도 함께 세고 싶다면, else 블록에 별도의 카운터를 추가하면 됩니다. 또한 파이썬 내장 함수 sum()과 제너레이터 표현식을 사용하면 다음과 같이 한 줄로도 구현할 수 있습니다.

s = "tutorialsP0int"
letters = sum(ch.isalpha() for ch in s)
digits = sum(ch.isdigit() for ch in s)
print(f"Letters: {letters}")
print(f"Digits: {digits}")

이처럼 파이썬의 문자열 메서드를 활용하면 문자열 분석 작업을 손쉽게 처리할 수 있습니다.