본문 바로가기
파이썬 데이터분석

파이썬 강의 - 문자열 찾기, 문자열 자르기, 문자열 포함 확인, 문자열 추출

by 데이터스토리 2024. 3. 5.
반응형

파이썬 강의 - 문자열 찾기, 문자열합치기, 문자열 자르기 관련 예제를 통해서 설명하겠습니다.

 

파이썬 강의 - 문자열 찾기
파이썬 강의 - 문자열 찾기

 

 

1. 문자열 이란

 

파이썬은 분석 및 시스템 백엔드용으로 점점 많이 사용하고 있습니다. 파이썬의 프로그램 문법 중 문자열을 다루는 기능은 활용도가 높은 프로그램입니다.

 

한 문장 한 문장 따라 해 보시면 쉽게 익힐 수 있을 것입니다.

문자열(string)은 문자(Characters)로 이루어진 문장이나 단어입니다. 여기에는 특수문자, 숫자, 영문자, 한글 등이 포함됩니다.

예를 들어 “손흥민은 AM 07:00면 일어나서 Tottenham 구장에 운동하러 간다”와 같습니다. 한글도 있고, 영문도 있고, 특수 문자도 있습니다.

 

실제 업무를 하다보면 문자열 관련한 고객의 요청 사항이 많습니다.

  • 문자열에 내가 찾는 문자(예. 포도청)가 포함되어 있나요
  • 문자열에 ‘고래’(또는 고등어)란 단어가 몇 번 들어 있나요?
  • 헌법에 ‘대한민국’ 국호가 몇번 포함되어 있나요?
  • 문자열에 ‘대학교졸업’이란 글은 몇 번째 나오나요?
  • 문자열을 단어별로 나누어 주세요.

등 다양한 요청 사항이 있습니다. 아래 내용을 익히시면 대부분의 요청 사항이 가능한 것을 아실 것입니다.

 

 

 

 

 

 

 

이번 학습에서 사용할 예제 문자열은 손흥민 선수 내용입니다. 손흥민 선수는 누구나 잘 알기에 간단한 문장을 만들어 예시로 사용하겠습니다.

 

[예시로 사용할 문자열]

"손흥민 선수는 토트넘 FC 소속 축구 선수이며 대한민국 축구 국가대표팀 주장이다."

 

문자열 다루기 - 쥬피터랩 코딩
문자열 다루기 - 쥬피터랩 코딩

 

 

 

 

 

 

2. 문자열 처리 - 문자열 찾기, 문자열 자르기, 문자열 포함 확인

여기서 알아볼 문자열을 다루는 기능은 다음과 같습니다.

문자열 찾기, 문자열 자르기, 문자열 포함 확인

 

하나씩 알아보겠습니다.

 

1) 문자열 인덱스 - 기본 구조 및 위치 처리

 

문자열은 각 문자마다 인덱스라고 부르는 위치값이 있습니다. ‘0’ 부터 시작합니다.

‘0’부터 시작해서 ‘1,2,3..’ 이렇게 증가합니다.

그러면 마지막 글자의 인덱스는 뭘까요? 그것은 ‘-1’ 입니다.

파이썬은 문자열의 위치를 제일 뒤에서 계산할 수 있게 마이너스 방식을 부여하고 있습니다.

사용해 보면 좋은 기능입니다.

 

# 문법

string[start:stop:step]

 

 

string은 문자열을 의미합니다.

더불어 문자열을 담고 있는 변수를 의미하기도 합니다.

 

 

 

 

 

 

 

string[start:stop:step] 이 부분에 대해서 설명 드리겠습니다.

  • start: 찾기하는 시작위치, 문자열의 시작점은 ‘0’ 부터 시작됩니다.
  • stop: 찾기의 마지막 위치
  • step: 문자열의 간격입니다. 기본값은 ‘1’ 입니다.

여기서 위치는 인덱스를 의미합니다. 첫번째 위치의 인덱스는 ‘0’ 이고 다음은 ‘1’ 이 됩니다.

인덱스는 0부터 양수로 진행됩니다. 음수는 마지막 인덱스부터 역으로 위치를 가리킵니다.

 

문자열 “무궁화꽃이피었습니다”를 가지고 살펴보겠습니다.

 

글자는 총 10자 입니다.

처음 인덱스는 0입니다. 마지막 글자 인덱스는 9입니다.

마지막 문자는 ‘-1’이 되고 제일 첫 문자는 ‘-10’이 됩니다.

마이너스에는 ‘-0’ 이 없기에 글자수와 같은 ‘10’ 이란 숫자가 마이너스 인덱스의 마지막이 됩니다.

 

문자열 화 
인덱시 0 1 2 3 4 5 6 7 8 9
역인덱스 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

 

 

 

 

 

 

 

2) 문자열 길이 - 문자열 길이는 얼마인가

 

문자열 길이는 반환해 주는 메소드가 있습니다.

# 문법

len(문자열 또는 문자열변수)

 

예를 들어보겠습니다. 예시로 사용하는 문자열의 길이를 출력하겠습니다.

str =  "손흥민 선수는 토트넘 FC 소속 축구 선수이며 대한민국 축구 국가대표팀 주장이다."

print(len(str))

 

결과는 45 입니다. 총 글자의 길이가 나옵니다. 참 공백 포함입니다.

 

문자열 연산
문자열 연산

 

 

 

 

 

 

 

 

 

 


 

 

3) 문자열에서 부분문자열 찾기 (substr in string)

 

주어진 문자열에서 찾고자 하는 문자열 또는 문자(이하 “부분 문자열” 이라고 하겠음)가 있는지 확인하는 작업입니다.

문자열에 부분 문자열이 포함되어 있으면 ‘True’ 포함 안 되어 있으면 ‘False’을 반환합니다.

문자열에서 찾고자 하는 부분 문자열인 “축구”와 “야구”에 데해서 포함 여부를 확인해 보겠습니다.

str =  "손흥민 선수는 토트넘 FC 소속 축구 선수이며 대한민국 축구 국가대표팀 주장이다."

substr1 = "축구"
print( substr1 in str)

substr2 = "야구"
print( substr2 in str)

 

결과는 각각 “True”, “False” 입니다. 축구는 포함되어서 True이고 야구는 포함이 안되어 있어서 False 입니다.

 

4) 문자열 위치 찾기 - find()

 

문자열에 부분 문자열이 어디에 위치해 있는지 확인하는 프로그램 문법입니다.

find() 메소드도 부분문자열을 찾는 문법으로

  • 찾으면 부분문자열의 첫번째 위치(인덱스)를 반환하고
  • 못 찾으면 ‘-1’을 반환합니다.

에제를 보겠습니다.

str =  "손흥민 선수는 토트넘 FC 소속 축구 선수이며 대한민국 축구 국가대표팀 주장이다."

substr1 = "축구"
print( str.find(substr1))

substr2 = "야구"
print( str.find(substr2))

결과는 각각 “18, -1” 입니다. “축구”는 18번째 위치에 있고, “야구”는 없기에 “-1” 값을 반환합니다.

“축구”는 2번 나오지만 첫번째 나오는 부분문자열 위치를 알려 줍니다.

 

5) 부분문자열 추출 : 문자열에서 지정 위치의 문자 또는 부분문자열을 추출하는 방법

 

이번에는 문자열에서 특정 위치 값을 반환하는 방법입니다.

문자열의 위치값을 지정하는 방식입니다. 문자열의 시작위치, 끝위치, 스텝 값을 적용해서 부분문자열을 추출하는 것이죠.

 

아래 예시로 확인해 보겠습니다.

str =  "손흥민 선수는 토트넘 FC 소속 축구 선수이며 대한민국 축구 국가대표팀 주장이다."
print(str[:3])
print(str[0])

결과는 각각 “손흥민”과 “손” 입니다. 문자열 변수 str의 대괄호 [] 안에 표시된 위치에 해당하는 데이터를 반환한 것이죠.

str[:3] 은 시작위치는 처음이고 끝 위치는 인덱스 값 3입니다.

str[0] 는 인덱스 0 한 글자를 추출하는 내용입니다.

 

 

 

 

 

 

 

 

 

 

 

 

6) 부분문자열이 몇 번 있는 지 알아내기 - count()

문자열에 제시하는 부분문자열이 몇 번 있는 지 알고자 할 때 사용하는 문법은 count() 메소드입니다.

str =  "손흥민 선수는 토트넘 FC 소속 축구 선수이며 대한민국 축구 국가대표팀 주장이다."

substr = '축구'
print(str.count(substr))

substr = '야구'
print(str.count(substr))

substr = '대한민국'
print(str.count(substr))

 

결과는 ‘2’, ‘0’, ‘1’입니다. 축구라는 문자가 2번 포함되어 있는 것을 확인한 것입니다.

이 기능 긴 문장 또는 문서 파일에서 부분 문자가 몇 번 있는지 찾을 때 유용합니다.

 

연습문제)

  • 토트넘은 몇 번 나오는 지를 확인하는 프로그램을 만드세요.
  • 대한민국헌법 "전문"에 "국민’ 글자가 몇 번 나오는지 확인하는 프로그램을 만드세요.

해답을 달지 않았습니다.

직접 해 보시기 바랍니다. 질문은 아래 댓글로 부탁해요. 

 

 

 

 

7)  문자열 분리하기 - split()

 

문자열은 여러 단어가 모여 있는 문구이거나, 그 문구의 집합체 이잖아요. 이제 문자열을 분리해 보겠습니다.

분리하는 기준은 공백입니다. 사용하는 메소드는 split() 입니다.

str =  "손흥민 선수는 토트넘 FC 소속 축구 선수이며 대한민국 축구 국가대표팀 주장이다."

print(str.split())

 

결과는 공백을 기준으로 분리되어 리스트에 저장됩니다. 아래와 같습니다.

 

['손흥민', '선수는', '토트넘', 'FC', '소속', '축구', '선수이며', '대한민국', '축구', '국가대표팀', '주장이다.']

 

저장된 결과를 사용할 때는 리스트 처리 방식으로 다루면 됩니다.

예제를 볼까요

str =  "손흥민 선수는 토트넘 FC 소속 축구 선수이며 대한민국 축구 국가대표팀 주장이다."

str_chars = str.split()   # 분리된 부분문자열을 리스트에 저장
print(str_chars[3])       # 3번 인덱스에 있는 리스트 데이터 출려

index = 0
for str_char in str_chars :  # 반복하여 리스트에 저장된 데이터 출력
    print(index, ': ',str_char)
    index += 1

 

결과는 아래와 같습니다. 인덱스 위치에 해당하는 데이터를 출력하고 있습니다.

 

프로그램 실행 결과
프로그램 실행 결과

 

 

 

 

 

 

 

 

 

 

 

3. 이런 기능 어떠세요

 

문자열을 제일 앞인 인덱스 0 번 부터 처리됩니다. 그것을 반대로 제일 뒤부터 처리해 보겠습니다.

제일 뒤의 끝에서 ‘-1’ 씩 인덱스값을 줄이면서 처리하면 됩니다.

아래 예제는 문자열을 제일 뒤부터 출력하는 프로그램 로직 입니다.

str =  "손흥민 선수는 토트넘 FC 소속 축구 선수이며 대한민국 축구 국가대표팀 주장이다."

print('[정상순서] ', str[::1])
print('[역순]     ', str[::-1])

 

츌력 결과는 아래와 같습니다.

 

> Output

[정상순서]  손흥민 선수는 토트넘 FC 소속 축구 선수이며 대한민국 축구 국가대표팀 주장이다.
[역순]      .다이장주 팀표대가국 구축 국민한대 며이수선 구축 속소 CF 넘트토 는수선 민흥손

 

두번째 문장은 문자열의 글자가 뒤집혀서 출력되었죠,. 이유는 str[::-1] 에서 마지막 ‘-1’ 때문입니다. 글자 처리 Step을 마이너스 1 즉, 한 글자 씩 앞으로 나아가며 추출하라는 의미이기 때문입니다. 즉, ‘-1’은 제일 끝에서 한 글자씩 -앞으로 나아가며 출력하는 것이죠.

 

이렇게 문자열을 다루는 프로그램 문법을 알아봤습니다.

내용의 이해를 위해 각 항목별 예제를 담아 설명을 달았습니다.

프로그램은 많은 코딩과 고민과 개선이 필요한 작업입니다. 위 코드를 보시고 연습해 보시기 바랍니다.

 

 

 

 

 


 

[같이보기]

 

  • 해외 여행 준비 필수 준비물 - 필수템, 꼭 챙겨야 하는 것들
 

해외 여행 준비 필수 준비물 - 필수템, 꼭 챙겨야 하는 것들

해외 여행 준비 필수 준비물 - 필수템, 꼭 챙겨야 하는 것들에 대해서 알아보겠습니다. 해외 여행은 미리 준비하면 여러면에서 유리 합니다. 그리고 여행의 즐거움은 필요한 물건이 가방에 있는

twdatastory.tistory.com

 

  • 비행기 반입 금지 물품 - 휴대용 라이터, 호신용 스프레이 는
 

비행기 반입 금지 물품 - 휴대용 라이터, 호신용 스프레이 는

비행기 반입 금지 물품 내용입니다. 2014년 1월 1일부터 적용되는 내용입니다. 국토교통부 교통안전공단, 대한항공 3개 기관이 합동으로 작성한 자료입니다. pdf 내용을 옮기며, 일반적인 물품은

twdatastory.tistory.com

 

 

  • 대한항공 기내 면세품 KAL기내 면세품 - 구매, 사전주문 알아보기
 

대한항공 기내 면세품 KAL기내 면세품 - 구매, 사전주문 알아보기

대한항공 기내 면세품 구매 사전주문 관련하여 알아보겠습니다. 아래 내용 참조하시어 해외여행에 도움 되기 바랍니다. 또한 대한항공 기내에서 면세품을 구매하는 방법도 활용해 보시기 바랍

twdatastory.tistory.com

 

  • 해외 여행 준비 필수 준비물 - 필수템, 꼭 챙겨야 하는 것들
 

해외 여행 준비 필수 준비물 - 필수템, 꼭 챙겨야 하는 것들

해외 여행 준비 필수 준비물 - 필수템, 꼭 챙겨야 하는 것들에 대해서 알아보겠습니다. 해외 여행은 미리 준비하면 여러면에서 유리 합니다. 그리고 여행의 즐거움은 필요한 물건이 가방에 있는

twdatastory.tistory.com

 

  • 아시아나 마일리지 가족회원 등록하기 - 항공마일리지 모으기, 아시아나 마일리지 적립 방법, 가족 간 사용 공유
 

아시아나 마일리지 가족회원 등록하기 - 항공마일리지 모으기, 아시아나 마일리지 적립 방법,

가족이랑 마일리지로 제주도에 가고자 한다. 아직 나에게는 아시아나 마일리지가 70,000마일이 남아있다. 2명을 등록하고 마일리로 계산하려 했다. 안된다고 한다. 가족회원에 아내가 없어서 이

twdatastory.tistory.com

 

  • 대한항공 마일리지 - 비행기표 예매, 마일리지 확인하기
 

대한항공 마일리지 - 비행기표 예매, 마일리지 확인하기

대한항공 마일리지 항공권 구입 - 누적된 대한항공 마일리지를 사용해서 비행기표 예매 방법을 알아보겠습니다. 비행기표 예매 시 마일리지 사용법이니 잘 따라와 주세요. 1. 대한항공 마일리지

twdatastory.tistory.com

 

  • 해외 여행의 필수품 재외공관 - 외교부 재외공관, 해외여행 안전지도 알아두기
 

해외 여행의 필수품 재외공관 - 외교부 재외공관, 해외여행 안전지도 알아두기

해외여행의 필수품 재외공관 그 재외공관에 대해서 알아보겠습니다. 외교부가 운영 중으로 해외 거주자 또는 해외 여행 하는 분들을 위한 우리나라 지역이죠 1. 해외 여행의 필수품 재외공관 -

twdatastory.tistory.com

 

 

 

반응형