파이썬 문자열(string) 다루기 - 메서드 정리

2020. 04. 23 IT/컴퓨터 > Python

picture by Chris Ried @ unsplash.com

 

파이썬을 다루다 보면 가장 많이 하게 되는 작업 중 하나가 문자열을 다듬는 작업일 것이다. 문자열 관련된 메서드들을 정리해 본다.

파이썬의 문자열은 작은따옴표(' ') 또는 큰따옴표(" ") 사이에 원하는 문자열을 입력해서 생성할수 있고, 여러 줄로 된 문자열을 한번에 생성하고 싶은 경우 작은따옴표나 큰따옴표 3개를 시작과 끝 부분에 입력해서 생성할 수 있다.

>>> quote = 'Simple is better than complex.'
>>> quote
'Simple is better than complex.'
>>> quote = '''
... Beautiful is better than ugly.
... Explicit is better than implicit.
... Simple is better than complex.
... '''
>>> quote
'\nBeautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\n'

 

파이썬의 문자열은 불변(immutable) 이므로 메서드가 원래의 문자열을 변경하는 경우는 없다. 메서드는 항상 새로운 문자열을 반환하므로 이 새로운 문자열을 저장해 줄 새로운 변수를 마련해 주어야 한다.

예전에 어떤 함수 안에서 text = text.replace('/', '') 식으로 새로 변경된 문자열을 다시 변수에 할당해 주어야 하는데 무의식중에 원래의 텍스트를 변경하는 것으로 생각했는지 text.replace('/', '') 라고만 적어놓고선 프로그램이 작동하지 않아서 한참 고생한 적이 있다.

 

str.capitalize()

문자열의 첫 글자만 대문자로 만들고 나머지는 소문자로 된 문자열을 반환한다. 이때 첫 문자가 영문 알파벳이 아닌 경우는 변환되지 않은 원래 문자 그대로이며 나머지 문자들만 소문자로 바뀐다.

>>> quote = 'SIMPLE IS BETTER THAN COMPLEX.'
>>> quote.capitalize()
'Simple is better than complex.'

>>> quote = '1. Simple is Better than Complex'
>>> quote.capitalize()
'1. simple is better than complex'

 

str.lower()

원래 문자열에서 영문 알파벳 문자를 모두 소문자로 바꾼 문자열을 반환한다. 영문 알파벳이 아닌 문자는 무시한다.

>>> quote = 'Simple Is Better Than Complex.'
>>> quote.lower()
'simple is better than complex.'
>>> quote = '안녕하세요 PYTHON'
>>> quote.lower()
'안녕하세요 python'

 

str.upper()

원래 문자열에서 영문 알파벳 문자를 모두 대문자로 바꾼 문자열을 반환한다. 영문 알파벳이 아닌 문자는 무시한다.

>>> quote = 'Simple Is Better Than Complex.'
>>> quote.upper()
'SIMPLE IS BETTER THAN COMPLEX.'
>>> quote = '안녕하세요 python'
>>> quote.upper()
'안녕하세요 PYTHON'

 

str.title()

문자열을 타이틀 규칙에 맞게 바꾼 새 문자열을 반환한다. 영문 알파벳이 아닌 글자 다음에 나오는 첫 알파벳 문자는 대문자로, 알파벳 문자 뒤에 나오는 알파벳 문자는 소문자로 바꾸는 것이다.

보통은 공백 문자 다음에 나오는 알파벳을 바꾸는 목적이지만, 공백문자가 아닌 어포스트로피(') 등의 문자 뒤에 따라오는 문자도 대문자로 바꾸어 버리기 때문에 그다지 쓸모있는 메서드는 아닌것 같다. 공식 문서에서는 정규표현식을 사용해 딱 빈칸 뒤에 오는 알파벳만 대문자로 바꾸는 방법이 있다고 소개하고 있지만 그렇게 하면 배보다 배꼽이 더 커지는것같다..

>>> quote = 'simple is better than complex.'
>>> quote.title()
'Simple Is Better Than Complex.'

>>> quote = "you're welcome."
>>> quote.title()
"You'Re Welcome."
-> R 은 소문자 r 로 남아있어야 하는데 대문자로 바꿔버림. 개선이 필요하다.

 

str.casefold()

전부 소문자로 된 문자열을 반환한다. str.lower()와 비슷하지만 더욱 엄격하게 적용된다고 하는데, 영어가 아닌 다른 언어에서 차이점을 나타내는 경우가 있는 듯하다. 예를 들어 독일어 ß 의 경우 lower() 로는 그대로 ß 이지만 casefold() 를 적용하는 경우 'ss' 로 바뀐다. 영어 이외의 라틴어권 문자를 다룰 경우 쓸 일이 있을지도 모르겠다.

>>> quote = 'SIMPLE IS BETTER THAN COMPLEX.'
>>> quote.casefold()
'simple is better than complex.'

 

str.swapcase()

영문 대문자는 소문자로, 소문자는 대문자로 바뀐 문자열을 반환한다. 영문 알파벳이 아닌 문자는 변하지 않는다.

>>> quote = 'Simple Is Better Than Complex.'
>>> quote.swapcase()
'sIMPLE iS bETTER tHAN cOMPLEX.'

>>> quote = 'python3'
>>> quote.swapcase()
'PYTHON3'

>>> quote = '안녕하세요'
>>> quote.swapcase()
'안녕하세요'

 

 

str.center(width[, fillchar])

width 에 지정해준 길이만큼의 빈 문자열을 만들고 원래의 문자열을 이 가운데 위치시킨다. 옵션으로 fillchar 를 지정해 주면 빈 문자 대신 fillchar 로 공간을 채운다. width 가 원래 문자열의 길이보다 작게 지정되었다면 원래의 문자열을 그대로 반환한다.

>>> quote = 'Simple is better than complex.'
>>> quote.center(50, '-')
'----------Simple is better than complex.----------'
>>> quote.center(10)
'Simple is better than complex.'

 

str.ljust(width[, fillchar])

원래의 문자열을 왼쪽 정렬하고 width 로 주어진 길이만큼 공백 문자로 채운 문자열을 반환한다. fillchar를 따로 지정해주면 공백 대신 그 문자로 공간을 채운다. width 가 원래 문자열의 길이보다 작은 숫자이면 원래 문자열을 반환한다.

>>> quote = 'python3'
>>> quote.ljust(30)
'python3                       '
>>> quote.ljust(30, '-')
'python3-----------------------'

 

str.rjust(width[, fillchar])

원래의 문자열을 오른쪽 정렬하고 width 로 주어진 길이만큼 공백 문자로 채운 문자열을 반환한다. fillchar를 따로 지정해주면 공백 대신 그 문자로 공간을 채운다. width 가 원래 문자열의 길이보다 작은 숫자이면 원래 문자열을 반환한다.

>>> quote = 'python3'
>>> quote.rjust(30)
'                       python3'
>>> quote.rjust(30, '-')
'-----------------------python3'

 

 

str.count(sub[, start[, end]])

특정 문자열이 원래 문자열 안에서 몇 번이나 등장하는지를 알려 준다. 옵션으로 start와 end를 지정할 수 있는데, 일반적인 문자열 슬라이스 할때와 같이 인덱스를 지정해주면 된다. start와 end를 지정해주면 그 범위 안에서만 검색한다.

>>> quote = '''
... Beautiful is better than ugly.
... Explicit is better than implicit.
... Simple is better than complex.
... '''
>>> quote.count('is')
3
>>> quote.count('is', 30)
2
>>> quote.count('is', 30, 60)
1

 

 

str.startswith(prefix[, start[, end]])

문자열이 prefix로 주어진 문자열로 시작되는지 검사해서 True 또는 False 를 반환해준다. Prefix 는 하나의 문자열일수도 있고, 튜플로 여러 문자열을 검사하도록 할 수도 있다. 튜플로 검사하는 경우 원소 중 하나만 일치하면 True가 반환된다.

옵션으로 start, end 인덱스를 주면 start 인덱스에서 검사를 시작하고 end 인덱스까지만 검사한다.

>>> quote = 'Simple Is Better Than Complex.'
>>> quote.startswith('Sim')
True
>>> quote.startswith(('Sim', 'ple'))
True

 

str.endswith(suffix[, start[, end]])

원래 문자열이 suffix 로 주어진 문자열로 끝나는지를 검사해서 True 또는 False 를 반환한다. Suffix 는 하나의 문자열일수도 있고, 튜플로 여러 문자열을 검사하도록 할 수도 있다. 튜플로 검사하는 경우 원소 중 하나만 일치하면 True가 반환된다.

옵션으로 start, end 인덱스를 주면 start 인덱스에서 검사를 시작하고 end 인덱스까지만 검사한다 (오른쪽부터).

>>> quote = 'Simple is better than complex.'
>>> quote.endswith('.')
True
>>> quote.endswith(('.', ','))
True
>>> quote.endswith(('_',','))
False

 

 

str.find(sub[, start[, end]])

원래 문자열에서 sub 으로 주어진 문자열을 찾는다. sub 문자열이 있는 경우 그 문자열이 시작되는 지점의 index를 반환해준다. sub 문자열을 찾지 못한 경우 -1 이 반환된다.

만약 문자열이 시작되는 위치를 찾고 싶은것이 아니라 그냥 문자열이 포함되어 있는지 여부만 알고 싶다면 find() 대신 'in' 연산자를 사용하는 것이 더 간단할 수도 있다.

>>> quote = 'Simple is better than complex.'
>>> quote.find(' ')
6
>>> quote.find('complex')
22
>>> quote.find('hello')
-1
>>> 'complex' in quote
True
>>> 'hello' in quote
False

 

str.index(sub[, start[, end]])

find() 와 같은 기능이지만, sub 문자열이 없는 경우 ValueError 를 일으킨다.

>>> quote = 'Simple is better than complex.'
>>> quote.index('complex')
22
>>> quote.index('hello')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

 

str.rfind(sub[, start[, end]])

왼쪽에서부터 검색하는 find() 와 반대로, 원래 문자열에서 sub 으로 주어진 문자열을 오른쪽에서부터 찾아 인덱스를 반환한다 (즉 가장 마지막에 sub 문자열이 나오는 곳의 인덱스). sub 문자열을 찾지 못한 경우 -1 이 반환된다.

>>> quote = 'Simple is better than complex.'
>>> quote.rfind(' ')
21
>>> quote.rfind('hello')
-1

 

str.rindex(sub[, start[, end]])

rfind() 와 같은 기능이지만, sub 문자열이 없는 경우 ValueError 를 일으킨다.

>>> quote = 'Simple is better than complex.'
>>> quote.rindex(' ')
21
>>> quote.rindex('hello')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

 

 

str.isalnum()

문자열이 알파벳과 숫자로만 이루어져있으면 True, 아니면 False 를 반환한다. 구체적으로는 문자열의 각 글자가 isalpha(), isdecimal(), isdigit(), isnumeric() 중 하나에 해당하면 해당 글자는 isalnum() 에 대해서 True 이다. 한글로 해 보면 한글도 True를 반환한다.

>>> quote = 'Simple is better than complex.'
>>> quote.isalnum()
False
-> 공백 문자는 ' '.isalnum() = False

>>> quote = 'python3'
>>> quote.isalnum()
True

>>> quote = '안녕하세요'
>>> quote.isalnum()
True

 

str.isalpha()

문자열이 알파벳으로만 이루어져 있으면 True, 한 글자라도 다른 글자가 들어 있으면 False를 반환한다.

>>> quote = 'python'
>>> quote.isalpha()
True
>>> quote = 'python3'
>>> quote.isalpha()
False
>>> quote = '안녕하세요'
>>> quote.isalpha()
True

 

str.isascii()

파이썬 3.7 에서 새로 생긴 메서드. 문자열의 모든 문자가 ASCII 문자이면 True, 아니면 False를 반환한다. 공백 문자도 True를 반환한다.

>>> quote = 'Simple is better than complex.'
>>> quote.isascii()
True
>>> quote = '안녕하세요'
>>> quote.isascii()
False

 

str.isdecimal()

문자열의 모든 문자가 10진수 숫자이면 True, 아니면 False를 반환한다.

>>> quote = '20200422'
>>> quote.isdecimal()
True
>>> quote = 'python3'
>>> quote.isdecimal()
False               

 

str.isdigit()

문자열의 모든 문자가 숫자로만 이루어져 있으면 True, 아니면 False를 반환한다. 10진수를 구성하는 0~9까지의 숫자 이외에도 다른 언어 체계에서 숫자를 나타내는 특별한 문자들도 True를 반환한다고 하는데, 공식 홈페이지에서는 Kharosthi 문자라는걸 예로 들고 있어서 찾아 보았더니 고대 인도(?) 문자라고 한다..이런걸 쓸 일이 있을지..

아마 일상적인 용도에서는 isdecimal()과 똑같은 용도로 쓰면 될 듯.

>>> quote = '20200422'
>>> quote.isdigit()
True
>>> quote = 'python3'
>>> quote.isdigit()
False      

 

str.isnumeric()

문자열의 모든 문자가 numeric 문자이면 True, 아니면 False를 반환한다. isdigit() 에 포함된 문자 이외에도 Unicode에서 numeric 값을 가진 문자들이 모두 포함된다고 한다. 10진수를 다루는 일상적인 용도에서는 역시 isdecimal() 과 차이 없을듯.

>>> quote = '20200422'
>>> quote.isnumeric()
True
>>> quote = 'python3'
>>> quote.isnumeric()
False      

 

str.islower()

문자열의 영문 문자가 모두 소문자이면 True, 아니면 False를 반환한다. 알파벳이 아닌 문자는 무시한다. 알파벳 문자가 하나도 포함되어 있지 않으면 False를 반환한다.

>>> quote = 'Simple is better than complex.'
>>> quote.islower()
False
>>> quote = 'simple is better than complex.'
>>> quote.islower()
True
>>> quote = 'python3'
>>> quote.islower()
True
>>> quote = '안녕하세요 python'
>>> quote.islower()
True
>>> quote = '안녕하세요'
>>> quote.islower()
False

 

str.isspace()

문자열의 모든 문자가 공백 문자 ' ' 이면 True, 아니면 False를 반환.

>>> quote = '          '
>>> quote.isspace()
True

>>> quote = '          ..?'
>>> quote.isspace()
False

 

str.istitle()

문자열이 title 형식에 맞으면 True, 아니면 False를 반환. 구체적으로는

영문 대문자 앞에는 대문자/소문자가 아닌 문자만 와야 하고 (대문자 앞에 공백문자가 오는 것이 일반적이지만, 한글 문자 등 알파벳이 아닌 문자가 있는 경우에도 True를 반환한다.),

영문 소문자 앞에는 꼭 영문 소문자 또는 대문자가 있어야 한다.

>>> quote = 'Simple is better than complex.'
>>> quote.istitle()
False
>>> quote = 'Simple Is Better Than Complex.'
>>> quote.istitle()
True
>>> quote = 'SIMPLE Is Better Than Complex.'
>>> quote.istitle()
False
>>> quote = '예를들어Simple Is Better Than Complex.'
>>> quote.istitle()
True

 

str.isupper()

문자열의 영문 문자가 모두 대문자이면 True, 아니면 False를 반환한다. 알파벳이 아닌 문자는 무시한다. 알파벳 문자가 하나도 포함되어 있지 않으면 False를 반환한다.

>>> quote = 'Simple is better than complex.'
>>> quote.isupper()
False
>>> quote = 'SIMPLE IS BETTER THAN COMPLEX.'
>>> quote.isupper()
True
>>> quote = 'PYTHON3'
>>> quote.isupper()
True
>>> quote = '안녕하세요 PYTHON'
>>> quote.isupper()
True
>>> quote = '안녕하세요'
>>> quote.isupper()
False

 

 

str.join(iterable)

반복 가능한 객체(리스트, 튜플 등)을 인자로 주면 객체의 각 원소를 주어진 string 을 이용해 연결해서 새로운 문자열을 반환해 준다. 반복 객체의 원소가 문자열 타입이 아닌 경우에는 TypeError 가 발생한다.

>>> words = ['simple', 'is', 'better', 'than', 'complex']
>>> ' '.join(words)
'simple is better than complex'
>>> '-'.join(words)
'simple-is-better-than-complex'

>>> numbers = [1,2,3,4,5]
>>> ' '.join(numbers)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found

 

str.split(sep=None, maxsplit=-1)

주어진 문자열을 sep 문자열이 나오는 곳마다 잘라서 잘린 문자열들로 이루어진 리스트를 반환한다. sep을 따로 지정하지 않으면 공백 문자가 나오는 곳마다 자른다. 이 때 공백문자가 연속해서 나오는 것은 무시하고 공백문자를 제거하고 잘려서 남은 문자열들만 리스트의 원소로 집어넣는다.

sep을 지정해주면 이 문자열을 기준으로 자르는데, 주어진 문자가 연속해서 나오는 경우에 연속된 sep 문자 사이사이에 빈 문자열이 있는것으로 간주해 빈 문자열 (공백 문자가 아니라 empty string) 를 리스트의 원소로 집어넣는다. (즉 default 인 공백 문자를 기준으로 split할때와 동작이 다름)

maxsplit 을 지정해주면 왼쪽부터 정해진 횟수만큼만 자르는 작업을 해서 리스트로 반환한다.

>>> quote = 'Simple Is Better Than Complex.'
>>> quote.split()
['Simple', 'Is', 'Better', 'Than', 'Complex.']

>>> address = 'http://www.google.com/blahblah'
>>> address.split('/')
['http:', '', 'www.google.com', 'blahblah']
-> // 사이에 빈 문자열 ('') 가 있는 것으로 간주
>>> address.split('/', maxsplit=2)
['http:', '', 'www.google.com/blahblah']

 

str.rsplit(sep=None, maxsplit=-1)

주어진 문자열을 sep 문자열이 나오는 곳마다 잘라서 잘린 문자열들로 이루어진 리스트를 반환한다. sep을 따로 지정하지 않으면 공백 문자가 나오는 곳마다 자른다. maxsplit 을 지정해주면 오른쪽부터 정해진 횟수만큼만 자르는 작업을 해서 리스트로 반환한다. 오른쪽부터 자르는 점만 제외하면, 왼쪽부터 잘라 나가는 split() 와 동작은 동일하다.

>>> quote = 'Simple Is Better Than Complex.'
>>> quote.rsplit()
['Simple', 'Is', 'Better', 'Than', 'Complex.']
>>> quote.rsplit(sep='e')
['Simpl', ' Is B', 'tt', 'r Than Compl', 'x.']
>>> quote.rsplit(maxsplit=2)
['Simple Is Better', 'Than', 'Complex.']

 

str.splitlines([keepends])

문자열 중에 개행 문자를 찾아 이를 기준으로 문자열을 잘라서 리스트로 반환해준다. 디폴트는 개행 문자는 제거한 리스트를 반환해 주지만, keepends=True 를 주면 개행문자가 포함된 원소들로 이루어진 리스트를 반환해준다. 자르는 기준이 되는 개행 문자들은 다음과 같다.

\n : Line Feed

\r : Carriage Return

\r\n : Carriage Return + Line Feed

\v or \x0b : Line Tabulation

\f or \x0c : Form Feed

\x1c : File Separator

\x1d : Group Separator

\x1e : Record Separator

\x85 : Next Line (C1 Control Code)

\u2028 : Line Separator

\u2029 : Paragraph Separator

>>> 'ab c\n\nde fg\rkl\r\n'.splitlines()
['ab c', '', 'de fg', 'kl']
>>> 'ab c\n\nde fg\rkl\r\n'.splitlines(keepends=True)
['ab c\n', '\n', 'de fg\r', 'kl\r\n']

split()과 다르게 마지막 문자가 개행 문자\n 인 경우 거기서 리스트가 끝난다. 
(split() 은 개행문자 뒤에 빈 line 을 원소로 추가해줌)

>>> "".splitlines()
[]
>>> "One line\n".splitlines()
['One line']

>>> ''.split('\n')
['']
>>> 'Two lines\n'.split('\n')
['Two lines', '']

 

 

str.strip([chars])

문자열의 좌우에 있는 공백 문자들을 제거한 문자열을 반환해준다. 따로 chars 문자열을 지정해주면 해당 문자열의 문자들로 조합할 수 있는 모든 문자열에 대해 왼쪽과 오른쪽에서 제거를 시도한다.

>>> quote = '    python3    '
>>> quote.strip()
'python3'

>>> quote = 'https://www.google.com'
>>> quote.strip('htspomc.')
'://www.google'

 

str.lstrip([chars])

원래 문자열에서 왼쪽에 있는 공백 문자를 전부 제거한 문자열을 반환한다. 문자열을 인수로 전달하면 공백문자 대신 해당 문자열을 제거한다. 이 때 정확히 해당 문자열을 제거하는것이 아니고, 주어진 문자열을 조합해서 나올 수 있는 모든 문자열에 대해 제거를 시도한다. (메서드를 사용하기 위해서 문자의 조합이 어떤 것이 나올수 있는지 계산해 봐야 하는것인가..)

유용하게 쓰는 경우는 웹에서 텍스트를 크롤링했을때 원하는 텍스트 앞뒤로 빈칸이 있는 경우가 많은데 이때 lstrip(), rstrip(), strip() 등을 이용해 빈칸이 제거된 깔끔한 문자열을 얻을수 있다.

>>> quote = '      python3     '
>>> quote.lstrip()
'python3     '

>>> quote = 'Simple Is Better Than Complex.'
>>> quote.lstrip('iSm')
'ple Is Better Than Complex.'
-> 이 경우 제거를 위해 iSm, Sim, miS 등의 모든 조합을 다 시도해 본다는 뜻

 

str.rstrip([chars])

원래 문자열에서 오른쪽에 있는 공백 문자를 전부 제거한 문자열을 반환한다. 문자열을 인수로 전달하면 공백문자 대신 해당 문자열을 제거한다. 이 때 정확히 해당 문자열을 제거하는것이 아니고, 주어진 문자열을 조합해서 나올 수 있는 모든 문자열에 대해 제거를 시도한다. 오른쪽에서 제거하는 점을 빼면 lstrip() 과 같다.

>>> quote = '      python3     '
>>> quote.rstrip()
'      python3'

>>> quote = 'Simple Is Better Than Complex.'
>>> quote.rstrip('.xle')
'Simple Is Better Than Comp'
-> 이 경우 제거를 위해 .xle, .lex, exl., xe.l 등의 모든 조합을 다 시도해 본다는 뜻

 

 

str.partition(sep)

sep 으로 주어진 문자열이 처음 나오는 곳에서 문자열을 3개로 잘라 튜플로 반환해 준다(sep 의 앞부분, sep, sep의 뒷부분). 원래 문자열에 sep 문자열이 없는 경우에는 원래 문자열과 빈 문자열 2개로 된 튜플을 반환한다.

>>> quote = 'Simple Is Better Than Complex.'
>>> quote.partition(' ')
('Simple', ' ', 'Is Better Than Complex.')
>>> quote.partition('Better')
('Simple Is ', 'Better', ' Than Complex.')
>>> quote.partition('Hello')
('Simple Is Better Than Complex.', '', '')

 

str.rpartition(sep)

sep 으로 주어진 문자열이 처음 나오는 곳에서 문자열을 3개로 잘라 튜플로 반환해 준다(sep 의 앞부분, sep, sep의 뒷부분). 원래 문자열에 sep 문자열이 없는 경우에는 빈 문자열 2개와 원래 문자열로 된 튜플을 반환한다.

>>> quote = 'Simple Is Better Than Complex.'
>>> quote.rpartition(' ')
('Simple Is Better Than', ' ', 'Complex.')
>>> quote.rpartition('Better')
('Simple Is ', 'Better', ' Than Complex.')
>>> quote.rpartition('hello')
('', '', 'Simple Is Better Than Complex.')

 

 

str.replace(old, new[, count])

문자열 안에서 특정 문자열을 전부 찾아 새로운 문자열로 바꿔 준다. 개인적으로 프로젝트 관련해서 디렉토리 내의 파일 이름을 대량으로 바꾸는 작업을 할 때가 가끔 있는데 이때 유용하게 쓰는 메서드이다. 옵션으로 count 를 주면 count 에 주어진 횟수만큼만 바꾸고 작업을 멈춘다.

>>> quote = 'Simple Is Better Than Complex.'
>>> quote.replace(' ', '-')
'Simple-Is-Better-Than-Complex.'
>>> quote.replace(' ', '-', 2)
'Simple-Is-Better Than Complex.'

 


str.zfill(width)

원래의 문자열 왼쪽에 숫자 '0' 을 채워 width 만큼의 길이를 가진 문자열을 만들어 반환한다. width 가 원래 문자열 길이보다 작으면 원래 문자열을 그대로 반환한다. 특이점은 문자열이 + 또는 - 기호로 시작하는 경우에는 숫자 0 을 맨 왼쪽부터 채우는 것이 아니고 + 또는 - 기호가 가장 먼저 나오고 그 다음 0을 채우고, 그 후에 원래 문자열의 나머지 부분이 나온다.

>>> quote = 'python3'
>>> quote.zfill(20)
'0000000000000python3'

>>> quote = '+2020'
>>> quote.zfill(20)
'+0000000000000002020'

 

이상으로 파이썬 문자열 관련된 메서드들을 정리해 보았다. 이외에도 몇가지 메서드들이 더 있지만 유니코드 등 관련된 전문적인 작업을 하는 경우가 아니면 별로 쓸 일이 없을것같아 생략했다. 문자열 포매팅 관련된 format() 메서드는 내용이 많아 나중에 따로 정리해 보려고 한다.

TAGS: # string # 문자열


최근 글 목록