파이썬 문자열 다루기 - 문자열 관련 함수

Mozen

·

2024. 4. 7. 23:51

반응형

 

파이썬은 다양한 데이터 유형을 쉽게 처리할 수 있는 강력한 내장 함수를 제공하며, 문자열은 파이썬에서 가장 중요하게 다루어지는 데이터 유형 중 하나입니다. 이 글에서는 파이썬에서 사용할 수 있는 주요 문자열 함수들을 살펴보고, 각 함수의 사용 방법과 예시를 알아보고자 합니다. 문자열 처리는 데이터 분석, 웹 개발, 자동화 스크립트 작성 등 다양한 분야에서 필수적인 기능이므로 이러한 문자열 함수들을 숙지하는 것은 매우 중요합니다.

 

목차

1. '.startswith()'와 '.endswith()' 함수
2. '.split()' 함수
3. '.upper()'와 '.lower()' 함수
4. '.replace()' 함수
5. 마치며
반응형

 

 

1. '.startswith()'와 '.endswith()' 함수

 

'.startswith()'와 '.endswith()' 함수는 문자열이 특정 문자 또는 문자열로 시작하는지 또는 끝나는지 여부를 검사합니다. 이 함수들은 불리언 값을 반환합니다.

filename = "example.txt"
print(filename.startswith("ex"))  # 출력: True
print(filename.startswith("x"))   # 출력: False
print(filename.endswith("t"))     # 출력: True
print(filename.endswith("a"))     # 출력: False

 

 이 두 함수는 문자열 처리에서 아주 유용하게 활용될 수 있습니다. 아래에 각각의 사용 예를 들어 설명하겠습니다.

 

1.1. '.startswith()' 사용 예시

파일 이름이 특정 확장자로 시작하는지를 검사하고 싶을 때 '.startswith()' 함수를 사용할 수 있습니다. 예를 들어, 여러 파일 중에서 '2024_'로 시작하는 파일 이름만 찾고 싶다고 가정해 보겠습니다.

file_names = ["2024_report.txt", "2023_summary.docx", "2024_financials.xlsx", "2024_notes.txt"]
for file in file_names:
    if file.startswith("2024_"):
        print(f"{file} starts with '2024_'.")

 

위 코드는 '2024_'로 시작하는 파일 이름을 찾아 해당 파일 이름이 그 조건을 만족한다는 메시지를 출력합니다. 아래 사진은 코드 실행 결과입니다.

 

1.2. '.endswith()' 사용 예시

파일 이름이 특정 확장자로 끝나는지를 검사할 때 '.endswith()' 함수가 사용됩니다. 예를 들어, 파일 목록에서 모든 '.txt' 파일을 찾고 싶다면 다음과 같이 할 수 있습니다.

file_names = ["report.txt", "summary.docx", "financials.xlsx", "notes.txt"]
for file in file_names:
    if file.endswith(".txt"):
        print(f"{file} is a text file.")

 

위 코드는 파일 이름이 '.txt'로 끝나는 경우, 해당 파일이 텍스트 파일임을 나타내는 메시지를 출력합니다. 아래 사진은 코드 실행 결과입니다.

 

 

 

2. '.split()' 함수

 

'.split()' 함수는 파이썬에서 문자열을 분할하는 데 사용되며, 매우 유용합니다. 이 함수의 기본 구분자는 공백이지만, 다른 문자를 구분자로 사용할 수도 있습니다. 아래에서는 .split() 함수를 활용하는 다양한 예시를 보여드리겠습니다.

 

2.1. 기본 사용법 (공백을 구분자로 사용)

문자열 내의 단어를 분리할 때 사용할 수 있습니다.

text = "Hello World Python"
words = text.split()
print(words)  # 출력: ['Hello', 'World', 'Python']

 

2.2. 콤마 ','를 구분자로 사용

CSV(Comma-Separated Values) 형식의 문자열을 분할할 때 유용합니다.

csv_data = "apple,banana,cherry"
fruits = csv_data.split(",")
print(fruits)  # 출력: ['apple', 'banana', 'cherry']

 

2.3. 콜론 ':'를 구분자로 사용

시간 표시와 같이 콜론으로 구분된 값을 분리할 때 사용할 수 있습니다.

time = "12:30:45"
parts = time.split(":")
print(parts)  # 출력: ['12', '30', '45']

 

2.4. 줄바꿈 '\n'을 구분자로 사용

여러 줄로 이루어진 문자열에서 각 줄을 분리할 때 사용할 수 있습니다.

multiline_text = "First line\nSecond line\nThird line"
lines = multiline_text.split("\n")
print(lines)  # 출력: ['First line', 'Second line', 'Third line']

 

2.5. 한정된 분할 수 지정

'.split()' 함수의 두 번째 인자를 사용하면 분할 횟수를 제한할 수 있습니다. 예를 들어, 문자열을 처음 등장하는 공백에서만 분할하려면 다음과 같이 할 수 있습니다. 이 예제에서는 문자열을 첫 번째 콜론 ;에서만 분할하여 두 부분으로 나누었습니다. 이 기능은 특히 데이터가 구조화된 방식에서 첫 번째 구분자까지만 분석하고 싶을 때 유용합니다.

text = "Name: John Doe; Age: 30; Occupation: Programmer"
first_split = text.split("; ", 1)
print(first_split)  # 출력: ['Name: John Doe', 'Age: 30; Occupation: Programmer']

 

 

 

3. '.upper()'와 '.lower()' 함수

'.upper()'와 '.lower()' 함수는 파이썬에서 문자열의 대소문자를 변환하는 데 사용됩니다. 이러한 변환 기능은 사용자 입력을 정규화하거나, 데이터를 비교할 때 대소문자가 결과에 영향을 미치지 않도록 하기 위해 매우 유용합니다. 단, 주의할 점은 두 함수가 원래 문자열을 직접 수정하지 않으므로, 변환된 형태를 재사용 하고 싶을 경우 기존 변수 또는 새로운 변수에 저장해 두어야 한다는 것입니다.

user_name = "MoZen"
user_name.lower()
print(user_name)  # 출력: MoZen

 

3.1. '.upper()' 사용 예시

사용자가 입력한 텍스트가 대소문자 구분 없이 명령어와 일치하는지 확인하려고 할 때 '.upper()'를 사용할 수 있습니다.

user_input = "Exit"
command = "EXIT"

if user_input.upper() == command:
    print("Exiting the program...")
else:
    print("Unknown command.")

 

이 예제에서 사용자 입력과 명령어를 모두 대문자로 변환하여 비교함으로써, 대소문자에 상관없이 일치하는지 확인할 수 있습니다.

 

3.2. '.lower()' 사용 예시

웹 개발에서 이메일 주소를 저장하거나 비교할 때 '.lower()' 함수를 사용하여 모든 문자를 소문자로 변환할 수 있습니다. 이메일 주소는 대소문자를 구분하지 않으므로, 데이터의 일관성을 유지하기 위해 소문자로 통일하는 것이 일반적입니다.

email = "User@example.com"
normalized_email = email.lower()
print(normalized_email)  # 출력: user@example.com

이 예제에서는 이메일 주소의 모든 문자를 소문자로 변환함으로써 데이터를 정규화했습니다. 이 방법을 사용하면, 동일한 이메일 주소가 대소문자가 다르게 입력되더라도 같은 주소로 인식할 수 있습니다.

 

 

 

4. '.replace()' 함수

'.replace()' 함수는 파이썬에서 문자열 내의 특정 부분을 다른 문자열로 교체하는 데 사용됩니다. 문자열 내용을 동적으로 변경하거나, 데이터 정제 과정에서 필요하지 않은 문자를 제거하는 등 다양한 상황에서 활용할 수 있습니다. 다음은 '.replace()' 함수를 활용하는 몇 가지 예시입니다.

 

4.1. 기본 사용법

문자열 내의 특정 단어를 다른 단어로 바꾸고 싶을 때 사용할 수 있습니다. 아래 예제에서는 "World""Python"으로 교체했습니다.

text = "Hello, World!"
new_text = text.replace("World", "Python")
print(new_text)  # 출력: Hello, Python!

 

4.2. 여러 번 교체하기

'.replace()' 함수는 지정된 모든 인스턴스를 교체합니다. 예를 들어, 문장 내의 모든 공백을 하이픈(-)으로 교체할 수 있습니다.

sentence = "This is a test sentence."
modified_sentence = sentence.replace(" ", "-")
print(modified_sentence)  # 출력: This-is-a-test-sentence.

 

4.3. 대소문자 구분

'.replace()' 함수는 대소문자를 구분합니다. 대소문자를 구분하지 않고 교체하려면, 먼저 '.lower()' 또는 '.upper()' 함수를 사용하여 문자열을 일관된 대소문자로 변환한 후 교체를 수행해야 합니다.

message = "Hello, world! World is beautiful."
# 모든 "world"를 "earth"로 교체하기 전에 소문자로 변환
message_lower = message.lower()
new_message = message_lower.replace("world", "earth")
print(new_message)  # 출력: hello, earth! earth is beautiful.

 

4.4. 부분 교체

'.replace()' 함수는 교체할 횟수를 제한할 수 있는 세 번째 매개변수를 가집니다. 예를 들어, 문자열 내의 첫 번째 인스턴스만 교체하려면 다음과 같이 합니다.

text = "cat, bat, cat, cat"
new_text = text.replace("cat", "dog", 1)  # 첫 번째 "cat"만 "dog"로 교체
print(new_text)  # 출력: dog, bat, cat, cat

 

 

 

5. 마치며

파이썬의 문자열 함수들은 문자열 데이터를 처리하고 분석할 때 매우 중요합니다. 위에서 소개한 함수들을 통해 문자열 데이터를 쉽게 조작하고, 데이터 분석이나 웹 개발 과정에서 요구되는 다양한 작업을 수행할 수 있습니다. 문자열 함수들을 숙지하고 올바르게 사용하는 것은 파이썬 프로그래밍 능력을 향상시키는 데 있어 필수적인 부분입니다.

반응형