파이썬(Python)

문자열과 관련된 함수

BlueNoa 2021. 6. 5. 23:28
728x90
반응형

· 문자열 관련 함수

문자형 자료에는 파이썬에서 지원하는 기본 함수들이 있다. 이를 내장함수라고 하는데 문자열 변수 뒤에 '.명령어'를 사용하여 출력할 수 있다.

 

· 문자 개수 세기(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의 데이터 형식은 나눌 수 없기 때문에 위와 같은 오류가 발생했다.

 

728x90
반응형