[기초]파이썬 문자열의 함수들
앞서 파이썬의 리스트 함수들에 대해서 정리해보았다. 이제는..! 문자열 함수들이다.
리스트와 마찬가지로 문자열도 객체(Object)이다. 따라서 문자열 안에도 다음과 같은 함수들이 존재한다.
count(sub)
str = "My nickname caputdraconis is the password for the Gryffindor dormitory"
print( str.count("is") ) # == print(2)
count(sub) 함수는 뜻 그대로 문자열에 sub이 등장하는 횟수를 반환하는 함수다. 문자열 str을 보면 알 수 있듯이 "is"가 caputdracon'is'와 be동사 'is', 이렇게 총 2번 쓰였다. 그렇기에 str.count( "is" )는 숫자 2를 반환하고 이를 print() 함수의 인자로 넣으면
위와 같이 2가 출력되었다.
lower() & upper()
str = "My nickname caputdraconis is the password for the Gryffindor dormitory"
upper_str = str.upper()
print(upper_str)
lower_str = str.lower()
print(lower_str)
print(str)
upper() 함수와 lower() 함수다. 각각 문자열 내용 전부를 대문자와 소문자로 바꾼 문자열을 반환하는 함수다. 위의 코드를 살펴보면 upper_str에 str 내용 모두를 대문자로 바꾼 문자열을 저장했다. lower_str에는 이와 반대로 str 내용 전부를 소문자로 바꾼 문자열을 저장했다. 그리고 이를 각각 출력해주면 아래와 같다. 가장 아래 출력된 str을 보면 알겠지만 기존에 str에 저장되어 있는 데이터에는 영향을 끼치지 않음을 명심하자
lstrip() & rstrip() & strip()
str = " My nickname caputdraconis is the password for the Gryffindor dormitory "
lstrip_str = str.lstrip()
rstrip_str = str.rstrip()
strip_str = str.strip()
print(lstrip_str)
print(rstrip_str)
print(strip_str)
strip() 관련 함수 3개다. 일단 strip() 함수는 문자열의 앞과 뒤에 위치한 공백을 모두 제거한 문자열을 반환하는 함수다. 문자열의 앞과 뒤를 모두 정리하는 strip() 함수와 달리 lstrip() 함수는 문자열의 앞쪽만, rstrip() 함수는 문자열의 뒤쪽만 정리하는 함수다. 위의 코드를 실행해보면
+) lstrip()을 했을 때 반환되는 문자열을 rstrip()하면 처음부터 strip() 함수만 사용한 것과 같은 문자열이 나오지 않을까 싶어서 아래와 같이 코드를 작성하고 실행해보았다.
str = " My nickname caputdraconis is the password for the Gryffindor dormitory "
strip_str = str.rstrip().lstrip()
print(strip_str)
근데!!!!
이쁘게 실행된다 흫하ㅏㅏㅏ
replace(old, new)
str = "My nickname caputdraconis is the password for the Gryffindor dormitory"
new_string = str.replace("caputdraconis", "ponyo")
print(new_string)
print(str)
replace(old, new) 함수는 old 자리에 주어진 문자열을 new 자리에 주어진 문자열로 교체한 문자열을 반환하는 함수다. 즉 위의 코드에서는 str 문자열에 존재하는 "caputdraconis"를 "ponyo"로 교체한 문자열을 new_string에 저장했다. 이를 출력하고, 또 기존의 str을 출력해서 보면서 str에는 영향을 끼치지 않는 함수임을 알 수 있다.
split()
str = "My nickname caputdraconis is the password for the Gryffindor dormitory"
splited_str = str.split()
print( splited_str )
split() 함수는 문자열의 공백을 기준으로 나눠서 리스트에 담아 반환하는 함수다. 위의 예시에서 str에는 총 9개의 공백이 있다. 이 공백들을 기준으로 나눠서 리스트에 한 단어씩 들어오게 될 것이다. 실행결과는 아래와 같다.
+) split() 또한 str에 기존에 저장되어 있던 문자열에는 영향을 끼치지 않는다.
find(sub) & rfind(sub)
str = "My nickname caputdraconis is the password for the Gryffindor dormitory"
print(str.find("is"))
print(str.find("ponyo"))
print(str.rfind("is"))
find(sub) 함수와 rfind(sub) 함수다. 먼저 find() 함수는 문자열에 sub이 있으면, 그 위치의 인덱스 값을 반환하고, 없으면 -1을 반환하는 함수다. rfind(sub) 함수는 find(sub) 함수와 거의 모든 부분이 일치하지만 문자열의 앞에서부터 훑는 find(sub) 함수와 달리 rfind(sub)은 문자열의 뒤에서부터 훑는다는 차이점이 있다. 아래의 실행결과를 살펴보면 똑같이 "is"라는 문자열을 찾았는데 find냐 rfind냐에 따라 다른 인덱스 값을 반환했음을 알 수 있다. 또한 str 문자열에는 존재하지 않는 "ponyo"라는 문자열을 검색했을 때 -1(결과 없음)이 반환되었음을 확인할 수 있었다!
댓글
이 글 공유하기
다른 글
-
Python venv 가상환경 VScode 인식 못함
Python venv 가상환경 VScode 인식 못함
2021.02.12 -
[기초]파이썬 리스트의 함수들
[기초]파이썬 리스트의 함수들
2020.09.05 -
파이썬 난리법석 간단 정리(변수, 함수, 반복, 데이터형) - Private
파이썬 난리법석 간단 정리(변수, 함수, 반복, 데이터형) - Private
2020.09.03