파이썬 문자열 함수: 텍스트를 자유자재로 요리하기

Day 8

파이썬 문자열 함수: 텍스트를 자유자재로 요리하기

검색, 수정, 분리까지! 실무 데이터 처리의 80%를 차지하는 문자열 스킬

축하합니다! 드디어 2주차에 접어들었습니다. 1주차에서 프로그래밍의 뼈대를 세웠다면, 이제는 그 안을 채울 데이터를 다루는 법을 배울 차례입니다. 그 첫 번째 주인공은 가장 친근하면서도 활용도가 높은 '문자열(String)'입니다.

1. 문자열 함수가 왜 필요한가요?

우리가 인터넷에서 수집하는 대부분의 데이터(이름, 주소, 뉴스 기사 등)는 텍스트 형태입니다. 이 데이터에는 불필요한 공백이 섞여 있거나, 형식이 제각각인 경우가 많죠. 파이썬의 문자열 함수를 이용하면 이런 데이터들을 1초 만에 깔끔하게 정돈할 수 있습니다.

2. 가장 많이 쓰이는 문자열 함수 TOP 4

① 수정하기: replace()와 변환 함수

특정 글자를 바꾸거나 대소문자를 통일할 때 사용합니다.

text = "Python is Easy"

print(text.replace("Easy", "Powerful")) # 글자 바꾸기
print(text.upper()) # 전부 대문자로
print(text.lower()) # 전부 소문자로

② 공백 제거: strip()

사용자로부터 입력을 받을 때 실수로 들어간 양 끝의 공백을 제거합니다. 데이터 정제 시 필수입니다!

user_input = "   python123   "
print(user_input.strip()) # "python123" (공백 삭제)

③ 분리와 결합: split() & join()

가장 강력한 듀오입니다. 문장을 단어 리스트로 쪼개거나, 리스트를 다시 문장으로 합칩니다.

# split: 문장 -> 리스트
tags = "python,java,c++,html"
tag_list = tags.split(",") 
print(tag_list) # ['python', 'java', 'c++', 'html']

# join: 리스트 -> 문장
new_tags = "-".join(tag_list)
print(new_tags) # "python-java-c++-html"

3. 문자열 내부 탐색하기

문장 안에 특정 단어가 포함되어 있는지, 어떤 글자로 시작하는지 확인할 수 있습니다.

  • count(): 특정 글자가 몇 번 나오는지 셉니다.
  • find(): 특정 글자의 위치(인덱스)를 찾습니다. 없으면 -1을 반환합니다.
  • startswith() / endswith(): 특정 단어로 시작/종료하는지 확인(True/False)합니다.
email = "contact@google.com"

print(email.count("@"))       # 결과: 1
print(email.startswith("c"))  # 결과: True
print(email.endswith(".net")) # 결과: False

💡 8일차 궁금증 해결 (Q&A)

Q1. text.upper()를 했는데 원본 변수 text는 왜 안 바뀌나요?

A1. 파이썬에서 문자열은 '불변(Immutable)' 객체입니다. 한 번 만들어지면 내용을 직접 바꿀 수 없어요. 그래서 함수를 쓰면 '수정된 새로운 문자열'을 반환합니다. 원본을 바꾸고 싶다면 text = text.upper()처럼 다시 저장해야 합니다.

Q2. find()index()의 차이점이 뭔가요?

A2. 둘 다 위치를 찾지만, 찾는 글자가 없을 때 반응이 다릅니다. find()는 -1을 돌려주며 평화롭게 끝나지만, index()는 에러(ValueError)를 발생시켜 프로그램을 멈춰버립니다. 보통 안전한 find()를 더 선호합니다.

Q3. split() 괄호 안에 아무것도 안 넣으면 어떻게 되나요?

A3. split()은 기본적으로 공백(스페이스, 탭, 엔터)을 기준으로 문장을 쪼개줍니다. 아주 똑똑하게도 연속된 공백도 하나로 처리해서 깔끔하게 리스트로 만들어줍니다.

오늘의 미션 🚩

"문장 자동 교정기"를 만들어보세요!
1. " Python is Very easy " 라는 문장을 변수에 넣으세요.
2. 양쪽 공백을 제거하고(strip),
3. "Very"를 "Extremely"로 바꾸고(replace),
4. 모든 글자를 대문자로 바꿔서 출력해보세요!

문자열을 자유롭게 다루게 된 여러분, 축하드려요!
내일은 9일차: 튜플(Tuple)과 집합(Set)으로 자료구조의 세계를 더 넓혀보겠습니다. 🍊

댓글

이 블로그의 인기 게시물

초보 파이썬 따라하기: 7가지 실전 프로젝트로 매일 코딩 습관 만들기

초보자를 위한 Step-by-Step: 리스트와 인덱싱으로 값을 추가/삭제해 Python 기초 잡기

조건문(if, elif, else) 배우기