글 목록

파이썬 (Python) 기초 5: 스트링 메서드 (String Methods)


안녕하세요 여몽의 눈동자입니다.

이번 포스팅에서는 스트링 메서드에 대해 정리해보겠습니다. 역시 dir() 함수를 통해 스트링 데이터 타잎에 연계된 메서드 들을 확인 할 수 있습니다.

1. 스트링 메서드 (String Methods)

우선, 편리하게 대소문자를 변환할 수 있습니다.

메서드

설명

upper()

스트링의 문자를 모두 대문자로 바꿉니다.

lower()

스트링의 문자를 모두 소문자로 바꿉니다.

title()

스트링 각 단어의 첫글자만 대문자로 나머지는 소문자로 전환합니다.

swapcase()

스트링의 대문자는 소문자로 소문자는 대문자로 전환합니다.

In [1]: string = "hello world"

In [2]: string.upper()

Out[2]: 'HELLO WORLD'

In [3]: string.lower()

Out[3]: 'hello world'

In [4]: test1 = 'heLLo wOrld'

In [5]: test1.title()

Out[5]: 'Hello World'

In [7]: test1.swapcase()

Out[7]: 'HEllO WoRLD'

또는 스트링 내의 문자가 대문자인지 소문자인지 판단할 수도 있습니다.

메서드

설명

isupper()

스트링이 모두 대문자인경우 True를 그렇지 않은 경우 False를 반환합니다.

islower()

스트링이 모두 소문자인경우 True를 그렇지 않은 경우 False를 반환합니다.

In [4]: temp = "Hello world"

In [5]: temp.isupper()

Out[5]: False

In [6]: temp.islower()

Out[6]: False

In [7]: temp.upper().isupper()

Out[7]: True

위의 예 에서는 upper()가 스트링을 반환하기 때문에 이에 대해 다시 스트링 메서드인 isupper()가 적용가능합니다.

그 외에도 스트링 특성에 따라 논리적 참(True)/거짓(False) 을 반환하는 여러 유용한 메서드 들이 있습니다. 이러한 메서드 들은 특히 프로그램 사용자의 입력값의 유효성을 판별할 때 유용합니다.

메서드

설명

isalpha()

스트링이 모두 문자만을 포함하고 공백이 없다면 True를 그 외의 경우에는 False 반환합니다.

isalnum()

스트링이 모두 문자 또는 숫자만을 포함하고 공백이 없다면 True를 그 외의 경우에는 False 반환합니다.

isdecimal()

스트링이 모두 숫자로 되어있고 공백이 없다면 True를 그 외의 경우에는 False를 반환합니다.

isspace()

스트링이 공백, 탭 등 white space 만 있는 경우 참 그 외의 경우에는 False를 반환합니다.

istitle()

스트링내 각 단어에서 첫글자만 대문자이고 나머지는 소문자인 경우 True를 그 외의 경우에는 False를 반환합니다.

In [8]: test1 = "brown"

In [9]: test1.isalpha()

Out[9]: True

In [13]: test2 = "brown2"

In [14]: test2.isalpha()

Out[14]: False

In [15]: test1 = "Red1"

In [16]: test1.isalnum()

Out[16]: True

마지막에 공백을 추가하면 결과가 False로 바뀝니다.

In [17]: test1 += " "

In [18]: test1.isalnum()

Out[18]: False

연결하고 싶은 문자열 들을 특정 문자열을 연결자로 삼아 연결 (concatenate) 하거나 반대로 분리 할 수 있습니다.

메서드

설명

join()

주어진 문자열들을 메서드 앞의 문자열을 연결자로 삼아 연결합니다.

split()

반대로, 주어진 구분자를 이용하여 (기본값은 공백) 문자열을 나눕니다.

In [24]: test1 = ', '.join(['cats', 'dogs', 'horses'])

In [25]: test1

Out[25]: 'cats, dogs, horses'

In [28]: test2 = ' '.join(['My', 'name', 'is', 'Anisha', 'Nyatee'])

In [29]: test2

Out[29]: 'My name is Anisha Nyatee'

In [30]: test1.split()

Out[30]: ['cats,', 'dogs,', 'horses']

In [31]: test1.split(',')

Out[31]: ['cats', ' dogs', ' horses']

In [32]: test2.split('n')

Out[32]: ['My ', 'ame is A', 'isha Nyatee']

In [33]: test2.split()

Out[33]: ['My', 'name', 'is', 'Anisha', 'Nyatee']

스트링이 특정문자열로 시작하는지 혹은 끝나는지 판별할 수도 있습니다.

메서드

설명

startswith()

스트링이 특정문자열로 시작하는 경우 True 아니면 False를 반환합니다.

endswith()

스트링이 특정문자열로 끝나는 경우 True 아니면 False를 반환합니다.

In [19]: test3 = "Jane went to the school."

In [20]: test3.startswith('Jane')

Out[20]: True

In [21]: test3.startswith('Tom')

Out[21]: False

In [22]: test3.endswith('.')

Out[22]: True

문자열을 오른쪽, 왼쪽, 가운데로 정렬할 수 있으며 정렬 후 생긴 공백에는 다른 문자를 채울 수 있습니다.

메서드

설명

rjust()

스트링을 우측으로 정렬합니다.

ljust()

스트링을 좌측으로 정렬합니다.

center()

스트링을 가운데로 정렬합니다.

In [34]: 'Hello'.rjust(10)

Out[34]: '     Hello'

In [35]: 'Hello'.rjust(20)

Out[35]: '               Hello'

In [36]: 'Hello'.ljust(20)

Out[36]: 'Hello               '

In [37]: 'Hello'.rjust(20, '.')

Out[37]: '...............Hello'

In [38]: 'Hello'.ljust(20, '.')

Out[38]: 'Hello...............'

In [39]: 'Hello'.center(20, '-')

Out[39]: '-------Hello--------'

때로는 문자열의 앞이나 뒤에 불필요하게 공백이 붙어있을 수 있습니다. 이러한 불필요한 공백(trailing or leading whitespace) 을 제거할 수도 있습니다. 또는 공백 이외의 특정한 문자를 지정해서 제거할 수도 있습니다.

메서드

설명

strip()

스트링 양측의 불필요한 공백을 제거합니다.

lstrip()

스트링 왼쪽의 불필요한 공백을 제거합니다.

rstrip()

스트링 오른쪽의 불필요한 공백을 제거합니다.

In [40]: test1 = '     Brown     '

In [41]: test1.lstrip()

Out[41]: 'Brown     '

In [42]: test1.rstrip()

Out[42]: '     Brown'

In [43]: test1.strip()

Out[43]: 'Brown'

아래와 같이 특정 문자열을 지정하면 해당 문자열을 제거합니다.

In [45]: test2 = '-----Hello-----'

In [46]: test2.strip('-')

Out[46]: 'Hello'

In [47]: test2.lstrip('-')

Out[47]: 'Hello-----'

전체문자열에서 지정한 문자열이 몇번 나왔는지 어느 위치에 나왔는지 알아볼 수 있습니다.

메서드

설명

count()

지정된 문자열이 스트링에서 몇번 나왔는지 알려줍니다.

find()

지정된 문자열이 스트링에서 처음나오는 위치의 인덱스 번호를 반환합니다.  만약 스트링내에 없는 경우 -1을 반환합니다.

replace()

지정된 문자열을 새 문자열로 교체합니다.

In [50]: test1 = 'Jessica is a beautiful girl'

In [51]: test1.count('n')

Out[51]: 0

In [52]: test1.count('e')

Out[52]: 2

In [53]: test1.find('e')

Out[53]: 1

In [54]: test1.find('beautiful')

Out[54]: 13

In [55]: test1.find('pretty')

Out[55]: -1

In [56]: test1.replace('s','m')

Out[56]: 'Jemmica im a beautiful girl'

텍스트 교체를 최대 몇 번 할지도 지정 할 수 있습니다.

In [57]: test1.replace('s','m',1)

Out[57]: 'Jemsica is a beautiful girl'

댓글