본문 바로가기
방구석코딩/파이썬 기초문법

[파이썬 기초] 문자열 관련함수

by 석세상 2022. 5. 6.
반응형

앞에서 문자열 포맷에 대해 알아보았다면 이번에는 문자열의 유용한 함수에 대해서 알아보자. 기본적인 사용법은 문자 변수 뒤에 '.'을 넣고 함수명을 넣으면 된다.

 

1. 문자열 함수 기본 문법

  • 변수명.함수명() : 괄호 안에는 함수를 적용할 것들을 적어주면 된다.

 

2. 문자열 함수

함수명 설명
count 변수명 내에 있는 문자의 수를 세어준다.
find 변수명 내 해당 문자가 처음 나타나는 위치를 알려준다. 해당 문자가 없는 경우 -1 출력
index 변수명 내 해당 문자가 처음 나타나는 위치를 알려준다. 해당 문자가 없는 경우 에러
join 변수명의 문자를 join 괄호 안에 있는 값들 사이에 삽입한다.
upper 변수명 내 문자를 모두 대문자로 바꿔준다.
lower 변수명 내 문자를 모두 소문자로 바꿔준다.
lstrip 변수명 내 왼쪽에 있는 공백을 모두 지운다.
rstrip 변수명 내 오른쪽에 있는 공백을 모두 지운다.
strip 변수명 내 양쪽에 있는 공백을 모두 지운다.
replace 변수명 내 특정 문자를 다른 문자로 변경한다.
split 변수명 내 문자를 특정 기호 등으로 나누어 준다.

 

 

3. 문자열 함수 사용법

원래 프로그래밍이란게 설명만으로 이해하기가 어렵다. 그래서 가능하면 예시를 들어가면서 설명하는 게 훨씬 효과적이다. 위에 작성한 문자열 함수 중 유사한 몇몇 함수들을 제외하고 함수를 예제를 통해 사용법을 알아보려고 한다. 

 

1) count

count는 특정문자가 몇 개가 있는지 알려주는 함수이다. a라는 변수에는 hobby라는 문자열이 들어가 있는데 해당하는 특정 문자열의 숫자를 세기 위해 괄호 안에 b를 넣어주었다. hobby에는 b가 2개가 있기 때문에 출력 결과는 2가 나타난다. 참고로 문자열 전체 수를 알고 싶다면 다른 함수를 사용해야 하며, len이라는 함수를 사용해서 해결할 수 있다.

[입력값]
a = 'hobby'
a.count('b')

[출력결과]
2

 

2) find

find는 위치를 알려주는 함수이다. hobby에서 b라는 문자가 가장 먼저 나타난 위치를 알려주는데 결과를 보면 2라고 나타난다. hobby에서 b가 가장 먼저 나타난 위치는 세 번째인데 2라고 결과가 생성된 이유는 파이썬에서 자리는 0부터 시작하기 때문이다. 따라서 세 번째 위치한 문자를 자리로 표현하면 2이기 때문에 2로 결과가 나타난다.

[입력값]
a = 'hobby'
a.find('b')

[출력결과]
2

 

3) index

index는 find와 마찬가지로 위치를 알려주는 함수이다. 다만 find와 다른점은 괄호 안에 찾고자 하는 문자가 해당 변숫값 안에 없을 때 find는 -1을 결과로 생성하고 index의 경우는 에러가 발생한다. 대부분은 큰 차이를 두지 않고 쓰겠지만 두 가지의 차이를 알고 있으면 프로그램을 짤 때 분명 다르게 사용할 경우가 생기게 되니 알고는 있자.

 

4) join

다른 프로그램을 접해본 사람이라면 join이라는 함수는 두 테이블, 두 가지 데이터를 결합할 때 사용하는 데 파이썬에서는 조금 다르게 사용된다. 괄호 안에 있는 문자열의 값에 변수명에 들어있는 문자를 삽입한다.

[입력값]
a = ','
a.join('abcde')

[출력결과]
'a,b,c,d,e'

 

 

5) upper / lower 

upper의 경우는 변수값 안의 문자 중 소문자가 있는 경우 대문자로 변경해서 결과를 반환한다. lower의 경우는 upper와 반대로 대문자가 있는 경우 모두 소문자로 변경하여 결과를 출력한다.

[입력값]
a = 'Hobby'
a.upper()

[출력결과]
'HOBBY'



[입력값]
a = 'Hobby'
a.lower()

[출력결과]
'hobby'

 

6) lstrip / rstrip / strip

lstrip은 왼쪽에 있는 공백을, rstrip은 오른쪽에 있는 공백을, strip은 양쪽에 공백을 제거한다. 만약 중간에 공백이 있는 경우는 위의 세 가지 함수로는 지울 수 없는데 어떻게 지워야 할까? 7)번에 나오는 함수로 해결할 수 있으니 세 가지 함수에 대한 예시를 보고 넘어가서 보도록 하자.

[입력값]
a = '   H o b b y   '
a.lstrip()
a.rstrip()
a.strip()

[각각의 출력결과]
'H o b b y   '       →  lstrip의 결과
'   H o b b y'       →  rstrip의 결과
'H o b b y'          →  strip의 결과

 

7) replace

replace는 특정한 문자열을 다른 값으로 변환해준다. 그렇다면 6)번에서 해결하지 못한 중간에 있는 공백을 지우려면 어떻게 해야 할까? replace의 문법은 다음과 같이 사용된다. 변수명.replace('바꾸고 싶은 문자', '바뀐 문자'). 공백을 공백이 없는 것으로 예제와 같이 변환해주면 된다.

[입력값]
a = '   H o b b y   '
a.replace(' ', '')

[출력결과]
'Hobby'

 

8) split

split은 변수값 내에 문자열 중 특정 문자나 기호를 기준으로 분리한다. 아무 값도 넣지 않는 경우는 공백을 기준으로 나누게 되고, 나누고 싶은 기호 등이 있는 경우는 그 기호를 괄호 안에 입력하면 해당 기호로 나누게 된다.

[입력값]
a = '   H o b b y   '
a.split()

[출력결과]
'H','o','b','b','y'


※ 다른 기호 등으로 분류하고 싶은 경우
변수명.split('분류하고 싶은 기호')

 

여기까지 문자열 함수에 대해 알아봤는데 실제로 코딩을 하다 보면 오늘 알아본 문자열 함수의 경우는 굉장히 많이 사용하게 된다. 앞에서 배운 포맷의 경우는 마지막 결과를 보거나 중간 결과를 봐야 하는 경우에 사용하기 때문에 오늘 알아본 함수에 비해 많이 사용되지 않는다. 물론 많이 사용되고 많이 사용되지 않는다는 게 중요하고 중요하지 않고를 결정하지는 않지만 많이 사용되는 함수는 알아두면 훨씬 편하게 코딩이 가능하다.

 

 

728x90
반응형

댓글