· 문자열 관련 함수
문자형 자료에는 파이썬에서 지원하는 기본 함수들이 있다. 이를 내장함수라고 하는데 문자열 변수 뒤에 '.명령어'를 사용하여 출력할 수 있다.
· 문자 개수 세기(count)
<예제>
a = 'Elder Scroll'
print(a.count('l'))
영문자 소문자 'l'의 개수를 세도록 한다.
<결과>
3 |
· 위치를 반환하는 내장 함수(find, index)
(1) find를 이용하기
<예제>
b = 'The weekend goes by quickly.'
print(b.find('e'))
print(b.find('a'))
<결과>
2 -1 |
find는 문자열이 처음 나오는 위치를 알려준다. 위 예시에서는 'e'가 처음 나오는 위치를 반환하므로 0부터 시작해서 2번째 위치에 처음 존재하기 때문에 2가 반환된다.
반면, 'a'는 존재하지 않는 문자이므로 존재하지 않는 문자는 -1을 반환하게 된다.
(2) index를 이용한 방법
<예제>
b = 'The weekend goes by quickly.'
print(b.index('e'))
print(b.index('a')) # ValueError: substring not found
<결과>
2 |
find와 index의 결과에 대해서는 큰 차이점이 존재하진 않는다. 하지만 index의 경우 해당 문구에서는 없는 'a'문자를 찾으면 에러 문구와 함께 명령을 중단한다.
· 문자열 사이에 문자, 기호 삽입(join)
<예제>
b = 'The weekend goes by quickly.'
c = ['a', 'b', 'c', 'd']
print(".".join(b))
print(",".join(c))
print(c) # 일반 출력 했을 때 비교
<결과>
T.h.e. .w.e.e.k.e.n.d. .g.o.e.s. .b.y. .q.u.i.c.k.l.y.. a,b,c,d ['a', 'b', 'c', 'd'] |
join 함수는 일반 문자열뿐만 아니라 리스트 형식 또는 튜플 형식에도 입력할 수 있다.
· 대소문자 관련 함수
(1) upper - 문자열의 소문자를 대문자로 변환
<예제>
b = 'The weekend goes by quickly.'
print(b.upper())
<결과>
THE WEEKEND GOES BY QUICKLY. |
대문자는 그대로 두고, 소문자들을 전부 대문자로 변환해서 출력해준다.
(2) lower - 문자열의 대문자를 전부 소문자로 변환
<예제>
b = 'The weekend goes by quickly.'
d = b.upper()
print(d.lower())
<결과>
the weekend goes by quickly. |
upper 예시에서 변환된 결과를 d라는 객체에게 치환하고 다시 이를 lower() 함수로 출력해보면 다음과 같이 모두 소문자가 되어 출력되는 것을 확인할 수 있다.
(3) capitalize - 문자열의 첫 글자만 대문자로 바꾸는 경우
<예제>
e = "where do you live?"
print(e.capitalize())
<결과>
Where do you live? |
(4) title - 문자열 내의 단어의 첫 글자를 모두 대문자로 바꾸는 경우
<예제>
e = "where do you live?"
print(e.title())
<결과>
Where Do You Live? |
· 공백지우기, 바꾸기, 나누기
(1) lstrip - 왼쪽의 공백을 지우는 기능
<예제>
f = " where do you live?"
print(f.lstrip())
<결과>
where do you live? |
(2) rstip - 우측 공백을 지우는 기능
<예제>
= "where do you live? "
print(g.rstrip())
<결과>
where do you live? |
(3) stip - 양쪽 공백을 지우는 기능
<예제>
h = " where do you live? "
print(h.strip())
<결과>
where do you live? |
(4) replace - 특정 문자열을 바꾸는 기능
<예제>
b = 'The weekend goes by quickly.'
print(b.replace('The weekend', 'Life'))
<결과>
Life goes by quickly. |
replace(바꿀문자, 바꾸고 싶은 내용)
(5) split - 문자열을 나누는 기능
<예제>
b = 'The weekend goes by quickly.'
i = 'The, weekend,, goes, by, quickly.'
print(b.split()); print(i.split(','))
j = ['the', 'weekend', 'goes', 'by', 'quickly']
print(j.split(','))
<결과>
['The', 'weekend', 'goes', 'by', 'quickly.'] ['The', ' weekend', '', ' goes', ' by', ' quickly.'] |
<j 데이터의 오류 발생>
print(j.split(',')) AttributeError: 'list' object has no attribute 'split' |
split은 괄호 안에 아무 것도 입력하지 않으면 공백을 기준으로 문자를 나눈다. 또 한 존재하지 않는 기준을 넣으면 원문이 나온다.
※ 오류 발생 원인
split은 list나 tuple의 데이터 형식은 나눌 수 없기 때문에 위와 같은 오류가 발생했다.
'파이썬(Python)' 카테고리의 다른 글
Tuple 자료 (0) | 2021.06.06 |
---|---|
List 자료형과 id()를 통한 변수 복사의 차이 (0) | 2021.06.06 |
문자형 자료(인덱싱, 슬라이싱, 포매팅) (0) | 2021.05.24 |
숫자형 , 연산자, Print 함수의 서식과 자료 형식 및 이스케이프(탈출) 문자 (0) | 2021.05.24 |
주석과 변수 (0) | 2021.05.24 |