문자열은 프로그래밍에서 매우 중요한 역할을 합니다.
파이썬에서 문자열을 다루는 것은 매우 쉽고 간단합니다.
이번 블로그에서는 파이썬에서 문자열을 다루는 방법과 주요 기능들에 대해서 살펴보도록 하겠습니다.
문자열 다루기의 기본
문자열을 생성하는 방법은 매우 간단합니다. 따옴표를 사용하여 문자열을 생성할 수 있습니다. 파이썬에서는 작은 따옴표(')와 큰 따옴표(")를 모두 사용할 수 있습니다.
string1 = 'Hello, world!'
string2 = "Python is great!"
파이썬에서는 문자열에 대해 다양한 연산이 가능합니다.
문자열을 연결하는 연산은 '+' 기호를 사용합니다. '*' 기호를 사용하여 문자열을 반복할 수도 있습니다.
string3 = string1 + string2 # 문자열 연결
string4 = string1 * 3 # 문자열 반복
문자열 포맷팅
문자열 포맷팅은 매우 유용한 기능 중 하나입니다.
파이썬에서는 다양한 방법으로 문자열 포맷팅을 할 수 있습니다.
가장 일반적인 방법은 % 연산자를 사용하는 것입니다.
name = "John"
age = 30
print("My name is %s and I am %d years old." % (name, age))
파이썬 3.6부터는 f-strings을 사용하여 문자열 포맷팅을 할 수 있습니다.
f-strings은 가독성이 뛰어나며, 문자열 포맷팅에 매우 편리합니다.
name = "John"
age = 30
print(f"My name is {name} and I am {age} years old.")
문자열 메서드
파이썬에서 문자열을 다루기 위해 사용되는 다양한 메서드가 있다. 이번 섹션에서는 가장 많이 사용되는 몇 가지 메서드들에 대해 살펴보도록 하겠습니다.
- upper() : 문자열을 모두 대문자로 변환한다.
- lower() : 문자열을 모두 소문자로 변환한다.
- capitalize() : 문자열의 첫 번째 글자를 대문자로 변환한다.
- title() : 각 단어의 첫 글자를 대문자로 변환한다.
- swapcase() : 문자열에서 대문자는 소문자로, 소문자는 대문자로 변환한다.
- count(substring) : 문자열에서 substring이 등장하는 횟수를 반환한다.
- startswith(prefix) : 문자열이 prefix로 시작하는지 여부를 반환한다.
- endswith(suffix) : 문자열이 suffix로 끝나는지 여부를 반환한다.
- find(substring) : 문자열에서 substring이 처음 등장하는 위치를 반환한다. substring이 없으면 -1을 반환한다.
- index(substring) : find()와 비슷하지만, substring이 없으면 ValueError를 발생시킨다.
- replace(old, new) : 문자열에서 old를 new로 교체한 새로운 문자열을 반환한다.
- split() : 문자열을 공백을 기준으로 분리한 리스트를 반환한다.
- join(iterable) : iterable의 요소들을 문자열로 결합한 새로운 문자열을 반환한다.
# 문자열 메서드 예시
my_string = "Hello, World!"
print(my_string.upper()) # "HELLO, WORLD!"
print(my_string.lower()) # "hello, world!"
print(my_string.capitalize()) # "Hello, world!"
print(my_string.title()) # "Hello, World!"
print(my_string.swapcase()) # "hELLO, wORLD!"
print(my_string.count("l")) # 3
print(my_string.startswith("He")) # True
print(my_string.endswith("World!")) # True
print(my_string.find("o")) # 4
print(my_string.index("o")) # 4
print(my_string.replace("World", "Python")) # "Hello, Python!"
print(my_string.split()) # ['Hello,', 'World!']
print("-".join(["Hello", "World"])) # "Hello-World"
정규 표현식
정규 표현식은 문자열에서 패턴을 찾는 데 유용한 도구입니다.
파이썬은 내장된 re 모듈을 제공하여 정규 표현식을 쉽게 활용할 수 있습니다.
이번에는 파이썬에서 정규 표현식을 활용하는 방법에 대해 알아보겠습니다.
정규 표현식의 기본 문법은 다음과 같습니다.
- .: 임의의 한 문자
- ^: 문자열의 시작
- $: 문자열의 끝
- *: 앞의 문자가 0번 이상 반복
- +: 앞의 문자가 1번 이상 반복
- ?: 앞의 문자가 0번 또는 1번 나타남
- {m}: 앞의 문자가 m번 반복
- {m,n}: 앞의 문자가 m번 이상, n번 이하 반복
- []: 대괄호 안의 문자 중 하나와 매치
- |: 둘 중 하나와 매치
- (): 괄호 안의 정규식을 하나로 묶음
주요 함수
- re.search(pattern, string) : string에서 pattern과 매치되는 부분을 검색하여 MatchObject 객체를 반환합니다.
최초로 매치되는 부분만 반환합니다. - re.match(pattern, string) : string의 시작부분에서 pattern과 매치되는 부분을 검색하여 MatchObject 객체를 반환합니다.
search와 다르게 최초로 매치되는 부분만 반환합니다. - re.findall(pattern, string) : string에서 pattern과 매치되는 모든 부분을 리스트 형태로 반환합니다.
- re.sub(pattern, repl, string) : string에서 pattern과 매치되는 부분을 repl로 치환하여 새로운 문자열을 반환합니다.
re 모듈 임포트하기
파이썬에서 정규 표현식을 활용하려면 먼저 re 모듈을 임포트해야 합니다. 다음 코드와 같이 작성하면 됩니다.
import re
정규 표현식 패턴 만들기
정규 표현식 패턴은 문자열에서 찾을 패턴을 정의합니다.
정규 표현식 패턴은 다양한 메타 문자를 사용하여 구성됩니다.
예를 들어, 다음 코드는 문자열에서 숫자만 찾을 수 있는 정규 표현식 패턴을 정의합니다.
pattern = r'\d+'
위의 코드에서 \d는 숫자를 의미하며, +는 하나 이상의 문자를 의미합니다.
정규 표현식 검색하기
이제 만든 정규 표현식 패턴을 사용하여 문자열에서 패턴을 검색해 보겠습니다.
검색은 re 모듈의 search 함수를 사용하여 수행할 수 있습니다.
다음 코드는 문자열에서 숫자를 검색하는 예제입니다.
import re
pattern = r'\d+'
string = 'Hello 1234 World'
match = re.search(pattern, string)
if match:
print('숫자를 찾았습니다:', match.group())
else:
print('숫자를 찾지 못했습니다.')
위 코드에서 re.search 함수는 pattern과 string을 인자로 받아 문자열에서 패턴을 검색합니다.
검색 결과는 match 변수에 저장되며, match.group() 메소드를 사용하여 검색된 패턴을 출력합니다.
정규 표현식으로 문자열 변경하기
정규 표현식은 문자열에서 패턴을 찾아서 변경하는 데에도 사용될 수 있습니다.
re.sub 함수를 사용하여 문자열에서 패턴을 검색하고, 이를 다른 문자열로 변경할 수 있습니다.
다음 코드는 문자열에서 모든 숫자를 '#'으로 변경하는 예제입니다.
import re
pattern = r'\d+'
string = 'Hello 1234 World'
new_string = re.sub(pattern, '#', string)
print('원래 문자열:', string)
print('새 문자열:', new_string)
위 코드에서 re.sub 함수는 pattern, '#' 및 string을 인자로 받아 문자열에서 숫자를 찾아서 모두 '#'으로 변경합니다.
이번 글에서는 문자열 함수와 정규 표현식에 대해 알아봤습니다.
다음에는 리스트와 튜플에 대해 자세히 알아보겠습니다.
'파이썬 기초문법' 카테고리의 다른 글
파이썬(Python) 리스트(List)와 튜플(Tuple) 다루기: 초보자를 위한 가이드 (0) | 2023.03.12 |
---|---|
10가지로 알아보는 파이썬 인기 라이브러리 TOP 10 (0) | 2023.03.12 |
파이썬(Python) 파일 입출력(File I/O) - 파일 읽기/쓰기/복사/이동/삭제 (0) | 2023.03.07 |
파이썬으로 배우는 객체 지향 프로그래밍 (0) | 2023.03.07 |
객체지향 프로그래밍이란 무엇인가? (0) | 2023.03.07 |