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

파이썬으로 문자열 내 특정 단어의 등장 횟수를 세는 방법

이 글에서는 사용자가 입력한 문자열에서 특정 단어가 몇 번 등장하는지 계산하고, 그 결과를 출력하는 파이썬 프로그램을 다룹니다. 문자열 처리의 기본기를 익히기에 좋은 예제로, split() 함수와 반복문, 조건문을 활용해 문제를 해결합니다.

예제

입력: Python is an interpreted high-level programming language for general purpose programming.
세고자 하는 단어 입력 ::>programming
출력:: 2

위 예제에서 'programming'이라는 단어는 주어진 문자열 안에 두 번 등장하므로 결과값은 2가 됩니다.

알고리즘

wordoccurences(n, p)
/* n은 입력 문자열, p는 등장 횟수를 셀 단어 */
1단계: 문자열을 공백 기준으로 분리한다.
2단계: 카운터 변수 c를 선언하고 0으로 초기화하며, 단어가 일치할 때마다 c를 1씩 증가시킨다.
3단계: for 반복문을 이용해 분리된 단어들을 하나씩 검색한다.
4단계: 조건이 참이면 카운터 c를 증가시키고, 최종 결과를 출력한다.

예제 코드

def wordoccurences(n, p):
   x = n.split(" ")
   c = 0
   for i in range(0, len(x)):
      # 일치하는 단어를 찾으면 카운트 증가
      if (p == x[i]):
         c = c + 1
   return c       
# 드라이버 코드
n=input("문자열 입력 ::>")
p=input("세고자 하는 단어 입력 ::>")
print("단어", p, "의 등장 횟수는", wordoccurences(n, p), "입니다")
# 주어진 문자열에서 특정 단어의 등장 횟수를 세는 프로그램

실행 결과

문자열 입력 ::>python is an interpreted high level programming language for general purpose programming
세고자 하는 단어 입력 ::>programming
단어 programming 의 등장 횟수는 2 입니다

코드 설명

핵심 로직은 다음과 같습니다.

1. 문자열 분리: n.split(" ")를 사용해 입력받은 문자열을 공백을 기준으로 나누어 리스트로 만듭니다. 예를 들어 "hello world hello"는 ['hello', 'world', 'hello']가 됩니다.

2. 카운터 초기화: 변수 c를 0으로 초기화하여 단어가 발견될 때마다 값을 누적합니다.

3. 반복 비교: for 반복문으로 리스트의 각 요소를 순회하며 찾고자 하는 단어 p와 일치하는지 확인합니다.

4. 결과 반환: 모든 단어를 확인한 후 최종 카운트를 반환합니다.

더 간결한 방법: count() 활용하기

파이썬에서는 위 과정을 한 줄로 처리할 수도 있습니다. 리스트 객체가 제공하는 count() 메서드를 사용하면 별도의 반복문 없이 손쉽게 단어 개수를 구할 수 있습니다.

n = input("문자열 입력 ::>")
p = input("세고자 하는 단어 입력 ::>")
count = n.split().count(p)
print(f"단어 {p}의 등장 횟수는 {count}입니다")

split()에 인자를 넣지 않으면 공백뿐만 아니라 탭, 줄바꿈 등 모든 공백 문자를 기준으로 분리되므로 더욱 견고하게 동작합니다.

마무리

이번 예제는 문자열 분리, 반복문, 조건문의 조합으로 실질적인 문제를 해결하는 전형적인 패턴을 보여줍니다. 초보자라면 직접 반복문을 작성하는 방식부터 익힌 후, 내장 메서드인 count()를 활용하는 방법으로 확장해 보는 것을 추천합니다. 대소문자를 구분하지 않고 세고 싶다면 비교 전에 lower() 메서드로 문자열을 소문자로 변환하면 됩니다.