파이썬에서 문자열을 다룰 때 사용할 수 있는 함수들을 정리해보려고 한다.
멤버십 연산자
먼저, 가장 기본이되는 멤버십 연산자 membership operator를 사용해 문자열을 검색 할 수 있다.
'na' in 'yena' # yena에 na가 포함 o 인지 ?
'na' not in 'yena' # yena에 na가 포함 x 인지?
pattern이 text에 포함되어있는지 boolean 값으로 반환한다.
find, index 계열 함수
str클래스에 소속된 find(), rfind(), index(), rindex()를 이용하여 문자열을 검색할 수 있다.
find()
text = 'yenana'
pattern = 'na'
start = 0 # 시작 인덱스
end = len(text) # 시퀀스의 길이
text.find(pattern, start, end)
반환값 : 2
string에서 start인덱스부터 end-1인덱스 까지 pattern이 포함되면 그 가운데 가장 작은 인덱스를 반환하고, 그렇지 않으면 -1을 반환한다.
예제 텍스트 'yenana'에서 패턴인 'na'는 2번째 인덱스 부터 등장하므로 위 코드는 2를 반환한다.
이때, start와 end는 생략할 수 있다.
rfind()
text = 'yenana'
pattern = 'na'
start = 0 # 시작 인덱스
end = len(text) # 시퀀스의 길이
text.rfind(pattern, start, end)
반환값 : 4
find()와 다르게 문자열에서 end-1인덱스 부터 start까지 패턴이 처음으로 발견되는 위치를 반환한다. 그렇지 않으면 -1을 반환한다.
예제 텍스트 'yenana'에서 패턴인 'na'는 뒤에서 부터는 4번째에 등장하므로 위 코드는 2를 반환한다.
index()
text = 'yenana'
pattern = 'na'
start = 0 # 시작 인덱스
end = len(text) # 시퀀스의 길이
text.index(pattern, start, end)
반환값 : 2
find()함수와 같은 기능을 한다.
find와의 차이점은 문자열을 발견하지 못하면 예외처리로 ValueError를 발생시킨다.
rindex()
text = 'yenana'
pattern = 'na'
start = 0 # 시작 인덱스
end = len(text) # 시퀀스의 길이
text.rindex(pattern, start, end)
반환값 : 4
rfind()와 같은 기능을 한다.
rfind()와의 차이점은 index()와 마찬가지로 문자열을 발견하지 못하면 예외처리로 ValueError를 발생시킨다.
with 계열 함수
with계열 함수는 어떤 문자열이 다른 문자열의 시작이나 끝에 포함되어 있는지를 판단한다.
startswith()
text = 'yenana'
pattern = 'na'
start = 0 # 시작 인덱스
end = len(text) # 시퀀스의 길이
text.startswith(pattern, start, end)
반환값 : False
문자열이 pattern으로 시작하면 True, 그렇지 않으면 False를 반환한다. start인덱스부터 end인덱스 사이에서 판단한다.
endswith()
text = 'yenana'
pattern = 'na'
start = 0 # 시작 인덱스
end = len(text) # 시퀀스의 길이
text.endswith(pattern, start, end)
반환값 : True
문자열이 pattern으로 끝나면 True, 그렇지 않으면 False를 반환한다. start인덱스부터 end인덱스 사이에서 판단한다.
문자 코드를 다루는 파이썬 내장 함수
ord()
ord('a')
반환값 : 97
단일한 문자를 전달받아 그 문자의 유니코드unicode 코드 포인트를 정수로 반환한다.
char()
chr(97)
반환값 : 'a'
유니코드를 입력하면 해당하는 문자열을 반환한다.
'공부기록 > Python' 카테고리의 다른 글
[Python] sys.setrecursionlimit() - 재귀 최대 깊이 설정 (0) | 2022.02.11 |
---|---|
[Jupyter notebook] 주피터 노트북 테마 변경 방법 / 비교 (2) | 2020.06.14 |