프로그래밍/Python

[Python] 문자열 메소드

슬기나무 2021. 6. 12. 17:32
반응형

문자열을 사용할 때 쓸만한 메소드를 소개할까 합니다.

 

 문자열 메소드

 

upper(), lower()

이 메소드들은 각각 알파벳을 대/소문자로 변환하는 메소드입니다.

 

upper()는 대문자로, lower()는 소문자로 변환하여 반환해줍니다.

 

예를 들면

A = 'Hello, I am minsoo.'
B = A.upper()
C = A.lower()
print(B)
print(C)

출력 결과를 보시면 모두 대문자 혹은 소문자로 변환된 것을 확인할 수 있습니다.

 

이 메소드는 알파벳이 아닌 문자엔 사용할 수 없습니다.

 

startswith(), endswith()

각 메소드는 문자열 값이 각각 메소드에 전달된 문자열로

 

시작되거나 끝나면 True, 아니면 False를 반환하는 메소드입니다.

A = 'Hello, I am minsoo.'

print(A.startswith('Hello'))
print(A.endswith('Hello'))
print(A.startswith('minsoo.'))
print(A.endswith('minsoo.'))

각 출력 결과는 아래와 같습니다.

 

join(), split()

각 메소드는 문자열을 합치거나, 분할하기 위한 메소드입니다.

 

먼저 join() 메소드부터 알아보죠.

 

joint() 메소드는 문자열 리스트를 하나의 문자열 값으로 연결할 때 사용합니다.

A = ['Hello,', 'I', 'am', 'minsoo.']

A_join = ' '.join(A)
print(A_join)

위 코드는 A 리스트 안의 문자열을 join() 메소드를 사용하여

 

띄어쓰기로 연결한 모습입니다.

 

매개변수로 전달된 값이 각 리스트의 문자열 사이마다 들어가는 식이죠.

 

이 join()과 반대되는 역할을 하는 메소드가 split() 메소드입니다.

A = ['Hello,', 'I', 'am', 'minsoo.']

A_join = ' '.join(A)
print(A_join)

A_split = A_join.split()
print(A_split)

위 코드를 실행한 결과는 아래와 같습니다.

다시 리스트 A의 형태와 같아졌죠.

 

split() 메소드는 기본적으로 빈칸, 탭, 줄바꿈 등 공백을 기준으로

 

문자열을 나눕니다.

 

하지만 메소드 안에 매개변수를 입력하여 해당 매개변수를 기준으로 나눌 수도 있습니다.

A = ['Hello,', 'I', 'am', 'minsoo.']

A_join = ' @ '.join(A)
print(A_join)

A_split = A_join.split(' @ ')
print(A_split)

@ 문자를 넣어 join() 메소드로 합쳤다가, 다시 @를 기준으로 분리한 결과입니다.

 

split() 메소드는 , 줄바꿈 등을 기준으로 데이터를 나눌 때에 널리 사용합니다.

 

rjust(), ljust(), center()

rjust()와 ljust(), center() 메소드는

 

각각 문자열을 오른쪽/왼쪽/가운데로 정렬하는 메소드입니다.

 

정렬에는 기본으로 빈칸이 사용되지만, 특정 문자를 지정할 수도 있습니다.

A = '12345'.rjust(10,'-')
B = '12345'.ljust(10,'-')
C = '12345'.center(10,'-')
print(A)
print(B)
print(C)

세 메소드의 실행 결과를 한꺼번에 나타내었습니다.

 

첫번째 줄의 출력 결과는 오른쪽 정렬, 두번째 줄은 왼쪽 정렬입니다.

 

마지막 줄은 가운데 정렬입니다.

 

메소드의 매개변수를 10을 입력함으로써 총 길이 10의 문자열 안에서 정렬하도록 하였고,

 

알아보기 힘들 것 같아 추가로 '-' 문자열을 매개변수로 추가입력하였습니다.

 

그에 따라 기본적으로는 빈칸이 와야할 자리에 '-'가 5개 입력된 모습이네요.

 

그 중 가운데 정렬은 길이 5의 문자열을 10칸 내에 정렬하려다보니

 

앞엔 --, 뒤엔 ---가 와있네요.

 

숫자를 늘려보아도 항상 앞쪽이 1개가 적습니다. 참고하면 좋을 것 같습니다.

 

rstrip(), lstrip(), strip()

위에서 공백 또는 특정 문자열을 통해 정렬하는 메소드에 대해 알아봤다면

 

그를 없애는 메소드도 있겠죠?

 

그 메소드가 바로 strip() 메소드입니다.

 

이 메소드는 왼쪽, 오른쪽, 혹은 양옆에 있는 공백 혹은 문자열을 없애줍니다.

 

위에서 활용한 예제를 그대로 이어가보죠.

A = '12345'.rjust(10,'-')
B = '12345'.ljust(10,'-')
C = '12345'.center(10,'-')
print(A)
print(B)
print(C)

A_strip = A.lstrip('-')
B_strip = B.lstrip('-')
C_strip = C.lstrip('-')
print(A_strip)
print(B_strip)
print(C_strip)

위 코드를 실행한 결과는 아래와 같습니다.

'-'를 이용한 길이 10의 오른쪽/왼쪽/가운데 정렬로 정렬된

 

각각의 문자열을 lstrip() 메소드를 통해 왼쪽의 '-'만 없애봤습니다.

 

물론 여기서 '-'를 빼고 실행해도 '-'가 빈칸으로 대체될 뿐 결과는 같습니다.

 

 

여기까지 문자열을 다룰 때 유용한 메소드에 대해 알아보았습니다.

반응형