2025 파이썬 문자열 함수 완전 정리 lower, upper, strip, replace 등

파이썬은 실무뿐만 아니라 COS Pro, 정보처리기사, PCEP(파이썬 프로그래밍 능력검정) 같은 자격시험에서도 자주 등장한다.
이 시험들에서는 기본 문법을 묻는 문제들이 많은데, 그중에서도 문자열 함수(String Function) 는 빠지지 않고 출제된다.
이번 글에서는 시험에서도 자주 등장하고, 실제 코딩 연습에서도 꼭 알아둬야 할 파이썬 문자열 함수 6가지를 예제와 함께 정리했다.
기초 개념을 정확히 잡고 싶거나, 자격증 공부를 시작하는 사람에게 도움이 될 것 같다.

1. 대소문자 변환 함수 — 글자의 형태를 통일하기

문자열의 대소문자를 맞춰야 하는 상황은 자주 있다.
예를 들어 "Apple""apple"은 같은 단어지만, 컴퓨터는 서로 다른 문자열로 인식한다.
이럴 때는 아래 함수들을 이용하면 손쉽게 통일할 수 있다.

  • lower() : 문자열을 모두 소문자로 바꾼다.

  • upper() : 문자열을 모두 대문자로 바꾼다.

  • title() : 각 단어의 첫 글자를 대문자로 만든다.

  • capitalize() : 문장의 첫 글자만 대문자로 바꾼다.

text = "PyTHon ProGRamMing"
print(text.lower())   # python programming
print(text.upper())   # PYTHON PROGRAMMING
print(text.title())   # Python Programming
print(text.capitalize())  # Python programming

시험 문제에서도 "HELLO".lower()'hello' 같은 간단한 변환 문제로 자주 출제된다.
실제 코드에서도 입력값 비교나 파일명 처리 시 자주 쓰이는 기본 함수다.

2. 문자열 검색 함수 — 특정 단어 위치 찾기

문자열 안에서 특정 단어나 문자가 있는지, 있다면 어디에 위치하는지를 확인할 때 사용한다.
검색이나 문자열 분석 문제에서 자주 출제된다.

  • find(sub) : 지정한 문자열이 처음 나타나는 위치(인덱스)를 반환한다. 없으면 -1.

  • index(sub) : 찾는 문자열의 위치를 반환하지만, 없으면 오류(ValueError) 발생.

  • rfind(sub) : 문자열 뒤쪽부터 검색해 마지막으로 등장한 위치를 반환.

  • count(sub) : 특정 문자열이 몇 번 등장했는지 반환.

word = "banana"
print(word.find("a"))   # 1
print(word.rfind("a"))  # 5
print(word.count("a"))  # 3

find()index()의 차이는 오류 처리 여부다.
find()는 결과가 없으면 -1을 주지만, index()는 오류가 나기 때문에 예외 처리에 주의해야 한다.

3. 문자열 시작과 끝 확인 — 특정 패턴 검사

문자열이 특정 글자로 시작하거나 끝나는지를 확인할 때 사용하는 함수다.
파일 확장자, URL 주소, 이메일 도메인 등을 판별할 때 유용하다.

  • startswith(prefix) : 문자열이 특정 문자열로 시작하는지 검사한다.

  • endswith(suffix) : 문자열이 특정 문자열로 끝나는지 검사한다.

file_name = "report.csv"
if file_name.endswith(".csv"):
    print("CSV 파일입니다.")

url = "https://www.google.com"
if url.startswith("https://"):
    print("보안 연결입니다.")

이 두 함수는 단순 비교(==)보다 가독성이 높고 명확하다.
예를 들어 "data.txt".endswith(".txt")는 텍스트 파일 여부를 판단하는 간단한 예로 시험에서도 자주 보인다.

4. 공백 제거와 문자열 치환 — 깔끔한 데이터 만들기

문자열을 입력받을 때는 앞뒤로 공백이 섞이거나, 특정 단어를 바꿔야 하는 상황이 있다.
이럴 때 아래 함수들을 사용하면 된다.

  • strip() : 문자열 양쪽의 공백 제거.

  • lstrip() / rstrip() : 왼쪽 또는 오른쪽 공백만 제거.

  • replace(old, new) : 문자열의 특정 부분을 다른 문자열로 바꾼다.

msg = "   Hello Python   "
print(msg.strip())                 # 'Hello Python'
print(msg.replace("Python", "World"))  # '   Hello World   '

입력값을 처리하거나 CSV 데이터를 다룰 때 거의 필수적으로 사용되는 함수다.
특히 strip()은 사용자 입력 데이터를 다룰 때 가장 먼저 적용되는 함수 중 하나다.

5. 문자열 나누기와 합치기 — split()과 join()의 조합

문자열을 나누거나 다시 합칠 때 사용하는 함수다.
데이터 전처리, 파일 입출력, API 응답 처리 등에서 기본적으로 등장한다.

  • split(sep) : 구분자(sep)를 기준으로 문자열을 나누어 리스트로 반환.

  • join(iterable) : 리스트나 튜플의 요소를 문자열로 합친다.

data = "python,java,c"
langs = data.split(",")
print(langs)  # ['python', 'java', 'c']

joined = "-".join(langs)
print(joined) # python-java-c

split()으로 나눈 후 join()으로 다시 합치는 구조는 파이썬 문자열 처리에서 가장 자주 사용되는 패턴이다.
시험에서는 "a,b,c".split(",")['a','b','c'] 형태의 정답이 자주 나온다.

6. 문자열 조건 활용 — 자격증 문제에서 자주 보이는 패턴

문자열 함수를 단독으로 쓰기보다 조건문(if)이나 반복문(for)과 함께 쓰는 경우가 많다.
예를 들어 특정 단어를 포함한 문장만 출력하는 식이다.

sentences = ["I love Python", "Java is good", "Python is easy"]
for s in sentences:
    if "python" in s.lower():
        print(s)

이 예제는 대소문자 구분 없이 "python"이 들어 있는 문장만 출력한다.
이런 문제는 자격증 시험문제에서 자주 등장한다.
조건문과 문자열 함수를 함께 익혀두면 훨씬 쉽게 풀 수 있다.

댓글 쓰기