2024. 11. 27. 22:47ㆍ프로그래밍 언어/Python
Python에서 문자열은 가장 기본적이면서도 강력한 데이터 타입 중 하나입니다. 문자열 처리의 기초 개념부터 고급 활용까지, 이 글에서 모두 다뤄보겠습니다.
1. 문자열이란?
문자열(String)은 문자의 나열로, 작은따옴표(')나 큰따옴표(")로 감싸서 표현합니다.
여러 줄 문자열은 큰 따옴표 3개로 감싸서 표현합니다.
문자열 예제
# 작은따옴표와 큰따옴표로 문자열 생성
text1 = 'Hello'
text2 = "World"
# 여러 줄 문자열
multiline = """이 문자열은
여러 줄로 작성할 수 있습니다."""
print(multiline)
2. 문자열 기본 연산
Python에서는 문자열에 대해 다양한 연산을 지원합니다.
1) 문자열 연결
문자열을 연결하려면 + 연산자를 사용합니다.
greeting = "Hello, " + "Python!"
print(greeting) # Hello, Python!
2) 문자열 반복
문자열을 반복하려면 * 연산자를 사용합니다.
repeat = "Python! " * 3
print(repeat) # Python! Python! Python!
3) 길이 확인
문자열의 길이는 len() 함수를 사용합니다.
length = len("Python")
print(length) # 6
3. 문자열 슬라이싱과 인덱싱
문자열은 인덱스를 사용하여 특정 위치의 문자에 접근하거나, 슬라이싱을 통해 부분 문자열을 가져올 수 있습니다.
1) 인덱싱
text = "Python"
print(text[0]) # 첫 번째 문자: 'P'
print(text[-1]) # 마지막 문자: 'n'
2) 슬라이싱
문자열의 범위를 시작인덱스:종료인덱스로 표현할 수 있씁니다.
시작인덱스를 생략하면 0, 즉 처음부터 검색하며
종료인덱스를 생략하면 마지막 문자까지 검색합니다.
text = "Hello, Python!"
print(text[0:5]) # 'Hello'
print(text[:5]) # 처음부터 5번째 문자까지: 'Hello'
print(text[7:]) # 7번째 문자부터 끝까지: 'Python!'
4. 문자열 메서드
Python은 문자열 조작을 위한 다양한 메서드를 제공합니다.
1) 문자열 변경
text = "Python is Fun"
print(text.lower()) # 모두 소문자: 'python is fun'
print(text.upper()) # 모두 대문자: 'PYTHON IS FUN'
print(text.replace("Fun", "Awesome")) # 특정 부분 대체: 'Python is Awesome'
2) 문자열 검색
text = "Learn Python Programming"
print(text.find("Python")) # 'Python'의 시작 인덱스: 6
print(text.startswith("Learn")) # 'Learn'으로 시작하는지 확인: True
print(text.endswith("ing")) # 'ing'으로 끝나는지 확인: True
3) 공백 처리
text = " Python "
print(text.strip()) # 앞뒤 공백 제거: 'Python'
print(text.lstrip()) # 왼쪽 공백 제거: 'Python '
print(text.rstrip()) # 오른쪽 공백 제거: ' Python'
4) 문자열 나누기와 결합
text = "apple,banana,orange"
fruits = text.split(",") # 콤마 기준으로 나누기
print(fruits) # ['apple', 'banana', 'orange']
joined_text = " ".join(fruits) # 리스트를 공백으로 연결
print(joined_text) # 'apple banana orange'
5. 고급 문자열 formatting
1) f-string 사용
Python 3.6 이상에서는 f-string을 사용해 간단하게 문자열을 포맷팅할 수 있습니다.
%s를 여러 개 사용하지 않고 원하는 부분에 변수의 값을 넣을 때 유용하게 사용할 수 있어서 저도 자주 사용하는 편입니다.
name = "Alice"
age = 25
print(f"My name is {name} and I'm {age} years old.") # 'My name is Alice and I'm 25 years old.'
2) .format() 사용
greeting = "Hello, {}!".format("Bob")
print(greeting) # 'Hello, Bob!'
6. 문자열과 정규표현식
정규표현식을 활용하면 패턴에 따라 문자열을 검색하거나 변환할 수 있습니다.
import re
text = "My phone number is 123-456-7890."
pattern = r"\d{3}-\d{3}-\d{4}"
# 패턴 검색
match = re.search(pattern, text)
if match:
print(match.group()) # '123-456-7890'
7. 문자열과 인코딩
문자열은 encode()와 decode()를 사용해 인코딩과 디코딩이 가능합니다.
text = "안녕하세요"
encoded = text.encode("utf-8") # 문자열을 바이트로 인코딩
print(encoded) # b'\xec\x95\x88\xeb\x85\x95\xed\x95\x98\xec\x84\xb8\xec\x9a\x94'
decoded = encoded.decode("utf-8") # 바이트를 다시 문자열로 디코딩
print(decoded) # '안녕하세요'
8. 문자열 처리 꿀팁
- 문자열 거꾸로 뒤집기
text = "Python"
print(text[::-1]) # 'nohtyP'
- 특정 단어 개수 세기
text = "apple banana apple orange apple"
print(text.count("apple")) # 3
- 문자열 포함여부 확인
특정 문자열이 포함되어 있는지 확인할 때 in을 사용합니다. JAVA의 contains() 함수와 비슷하다고 보시면 됩니다.
text = """Line 1
Line 2
Line 3"""
print("Line 2" in text) # True
마무리
문자열은 Python에서 매우 자주 사용되는 데이터 타입이며, 그 활용법도 무궁무진합니다. 이번 가이드를 통해 기초부터 고급 기능까지 폭넓게 익히셨길 바랍니다. 연습을 통해 문자열 조작에 더욱 익숙해지세요! 🚀
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python 개발자가 반드시 알아야 할 내장 라이브러리 6가지 (3) | 2024.11.28 |
---|---|
Python 프로젝트를 체계적으로! 디렉터리 구조와 모듈 관리 방법 (0) | 2024.11.26 |
Python 파일 I/O와 JSON 데이터 처리 가이드 (0) | 2024.11.25 |
Python 패키지 관리 도구, pip 완벽 가이드 (0) | 2024.11.24 |
Conda 가상환경(venv) 생성 및 관리 방법 (0) | 2024.11.23 |