문자열은 문자들의 시퀀스로, 파이썬에서 매우 중요한 데이터 타입 중 하나이다. 문자열은 텍스트 데이터를 표현하는 데 사용되며, 다양한 방법으로 생성하고 조작할 수 있다.
1. 문자열 생성
파이썬에서 문자열을 생성하는 방법은 여러 가지가 있다. 문자열은 큰따옴표(" ")나 작은따옴표(' ')로 감싸서 생성할 수 있다.
str1 = "Hello, World!"
str2 = 'Python is fun'
print(str1) # 출력: Hello, World!
print(str2) # 출력: Python is fun
여러 줄 문자열은 삼중 따옴표(''' ''' 또는 """ """)를 사용하여 생성할 수 있다.
multi_line_str = """This is a
multi-line string.
It spans multiple lines."""
print(multi_line_str)
2. 문자열 연결
파이썬에서는 + 연산자를 사용하여 문자열을 연결할 수 있다.
first_name = "John"
last_name = "Doe"
full_name = first_name + " " + last_name
print(full_name) # 출력: John Doe
또한, * 연산자를 사용하여 문자열을 반복할 수 있다.
repeat_str = "Hello! " * 3
print(repeat_str) # 출력: Hello! Hello! Hello!
3. 문자열 인덱싱 및 슬라이싱
문자열은 시퀀스 자료형이기 때문에 인덱스를 사용하여 개별 문자에 접근할 수 있다. 인덱스는 0부터 시작한다.
text = "Python"
print(text[0]) # 출력: P
print(text[1]) # 출력: y
print(text[-1]) # 출력: n (마지막 문자)
슬라이싱을 사용하여 문자열의 일부분을 추출할 수 있다.
text = "Python Programming"
print(text[0:6]) # 출력: Python (0번 인덱스부터 5번 인덱스까지)
print(text[:6]) # 출력: Python (처음부터 5번 인덱스까지)
print(text[7:]) # 출력: Programming (7번 인덱스부터 끝까지)
print(text[7:18]) # 출력: Programming (7번 인덱스부터 17번 인덱스까지)
4. 문자열 메서드
파이썬의 문자열은 다양한 내장 메서드를 제공하여 문자열을 조작할 수 있다. 몇 가지 중요한 메서드를 살펴보자.
len(): 문자열의 길이를 반환한다.
text = "Hello, World!"
print(len(text)) # 출력: 13
lower(): 문자열을 소문자로 변환한다.
text = "Hello, World!"
print(text.lower()) # 출력: hello, world!
upper(): 문자열을 대문자로 변환한다.
text = "Hello, World!"
print(text.upper()) # 출력: HELLO, WORLD!
strip(): 문자열의 양쪽 끝에 있는 공백을 제거한다.
text = " Hello, World! "
print(text.strip()) # 출력: Hello, World!
replace(): 문자열 내의 특정 부분을 다른 문자열로 대체한다.
text = "Hello, World!"
print(text.replace("World", "Python")) # 출력: Hello, Python!
split(): 문자열을 구분자로 나누어 리스트로 반환한다.
text = "Hello, World!"
print(text.split(", ")) # 출력: ['Hello', 'World!']
join(): 리스트의 문자열 요소를 연결하여 하나의 문자열로 만든다.
words = ["Hello", "World", "Python"]
print(" ".join(words)) # 출력: Hello World Python
5. 문자열 서식화
파이썬에서는 문자열 내에 변수를 삽입하는 다양한 방법을 제공한다. 가장 일반적인 방법은 f-strings, format() 메서드, 그리고 % 연산자를 사용하는 것이다.
f-strings (Python 3.6+)
name = "Alice"
age = 30
print(f"Name: {name}, Age: {age}") # 출력: Name: Alice, Age: 30
format() 메서드
name = "Alice"
age = 30
print("Name: {}, Age: {}".format(name, age)) # 출력: Name: Alice, Age: 30
% 연산자
name = "Alice"
age = 30
print("Name: %s, Age: %d" % (name, age)) # 출력: Name: Alice, Age: 30
6. 문자열 검사
문자열에는 특정 패턴이나 조건을 검사할 수 있는 메서드들이 있다.
startswith(): 문자열이 특정 문자열로 시작하는지 확인한다.
text = "Python Programming"
print(text.startswith("Python")) # 출력: True
print(text.startswith("Java")) # 출력: False
find(): 문자열 내에서 특정 문자열의 첫 번째 위치를 반환한다. 찾지 못하면 -1을 반환한다.
text = "Python Programming"
print(text.find("Programming")) # 출력: 7
print(text.find("Java")) # 출력: -1
count(): 문자열 내에서 특정 문자열의 발생 횟수를 반환한다.
text = "Python Programming"
print(text.count("P")) # 출력: 2
print(text.count("p")) # 출력: 0