뇌를 자극하는 알고리즘 탈고 준비로 파이썬 공부에 소홀했다. 스케줄 조정을 잘해야 꾸준히 잘할 수 있을 텐데 쉽지 않을 것 같다.
아무튼 이제 문자열을 보자. 순서열이 제공하는 기능만으로도 대부분의 문자열 처리가 가능할 것 같다. 하지만 파이썬은 여기에 그치지 않고 각 문자열을(뿐만 아니라 다른 세부 자료형들도) 사용하기 쉽게 설계를 해놓았다. 다음 표는 문자열(str) 클래스에서 제공하는 메서드 목록이다. 자주 사용할 것으로 예상되는(기준 : 내맘) 같은 메서드는 굵게 표시를 해뒀다.
|
메서드 |
설명 |
|
str.capitalize() |
첫 문자를 대문자로 변환 |
|
str.center(width[, fillchar]) |
>>> s = "center" |
|
str.count(sub[, start[, end]]) |
sub가 문자열 안에 몇 개 들어 있는지 계수 |
|
str.encode([encoding[, errors]]) |
특정 인코딩으로 인코드함. 예를 들어 ASCII를 UNICODE로 변경하는 것이 가능함. |
|
str.endswith(suffix[, start[, end]]) |
문자열이 suffix로 끝나는지의 여부를 반환 |
|
str.expandtabs([tabsize]) |
문자열 내의 탭을 tabsize길이의 스페이스로 변환한다. |
|
str.find(sub[, start[, end]]) |
문자열 내에서 sub가 위치한 곳을 찾는다. 없으면 –을 반환한다. |
|
str.format(format_string, *args, **kwargs) |
프로그래머라면 이 기능부터 찾아봤을 것이다. 문자열 포맷을 수행한다. |
|
str.index(sub[, start[, end]]) |
find와 같다. 찾는 문자열이 없으면 ValueError를 올리는 것만 빼고. |
|
str.isalnum() |
문자열이 알파벳과 숫자만으로 이루어져있는지 판단 |
|
str.isalpha() |
문자열이 알파벳만으로 이루어져있는지 판단 |
|
str.isdecimal() |
10진수인지 판단 |
|
str.isdigit() |
숫자인지 판단 |
|
str.isidentifier() |
식별자인지를 판단 |
|
str.islower() |
모든 글자가 소문자인지를 판단 |
|
str.isnumeric() |
숫자인지를 판단 |
|
str.isprintable() |
인쇄가능한지를 판단(인쇄 불가능한 문자가 포함되어 있으면 False를 반환) |
|
str.isspace() |
스페이스로만 되어있는지를 판단 |
|
str.istitle() |
각 어절의 첫 글자가 대문자이고 뒤따라오는 문자들은 소문자인 Title 화되어 있는지 판단 예) |
|
str.isupper() |
모든 글자가 대문자인지를 판단 |
|
str.join(seq) |
>>> ','.join('abc') |
|
str.ljust(width[, fillchar]) |
>>> 'abc'.ljust(10) |
|
str.lower() |
모든 글자를 소문자로 변환 |
|
str.lstrip([chars]) |
>>> ' spacious '.lstrip() |
|
str.maketrans(x[, y[, z]]) |
|
|
str.partition(sep) |
>>> 'abcdefg-hjklmn'.partition('-') |
|
str.replace(old, new[, count]) |
>>> '123456789'.replace('123', 'ABC') |
|
str.rfind(sub[, start[, end]]) |
찾는 문자열이 없으면 -1 반환 |
|
str.rindex(sub[, start[, end]]) |
찾는 문자열이 없으면 ValueError 예외 발생 |
|
str.rjust(width[, fillchar]) |
>>> 'abc'.rjust(10) |
|
str.rpartition(sep) |
>>> 'ABC-DEF-GHI'.rpartition('-') |
|
str.rsplit([sep[, maxsplit]]) |
>>> 'ABC-DEF-GHI'.rsplit('-') |
|
str.rstrip([chars]) |
>>> ' 123 '.rstrip() |
|
str.split([sep[, maxsplit]]) |
>>> 'ABC-DEF-GHI'.split('-') |
|
str.splitlines([keepends]) |
>>> 'ABC\nDEF\nGHI'.splitlines() |
|
str.startswith(prefix[, start[, end]]) |
>>> '123456'.startswith('456') |
|
str.strip([chars]) |
>>> ' 123 '.strip() |
|
str.swapcase() |
>>> 'My name is Sean.'.swapcase() |
|
str.title() |
>>> 'good morning.'.title() |
|
str.translate(map) |
|
|
str.upper() |
>>> 'abc'.upper() |
|
str.zfill(width) |
>>> '123'.zfill(10) |
파이썬은 확실히 다른 언어보다 더 나은 편의를 제공한다. 과연 공공연하게 '편리한 언어'라고 광고해도 괜찮아 보인다. 파이썬으로 문자열을 다루다가 C로 문자열을 다루려면 적응이 잘 안될 것 같다. 다음에는 문자열의 형제들, 즉 다른 순서열들에 대해 알아볼 계획이다.
'Python' 카테고리의 다른 글
| [파이썬 일기] #4.2.4.3 불변 바이트 배열(bytes)와 가변 바이트 배열(byte array) (0) | 2009/05/20 |
|---|---|
| [파이썬 일기] #4.2.3.2 튜플(Tuple)과 리스트(List) (0) | 2009/05/07 |
| [파이썬 일기] #4.2.3.1 문자열 (0) | 2009/04/30 |
| [파이썬 일기] #4.2.3 순서열(Sequence) (0) | 2009/04/28 |
| [파이썬 일기] #4.2.2 Numeric 자료형 (0) | 2009/04/22 |
| [파이썬 일기] #4.2.1 파이썬에는 상수가 없다! (0) | 2009/04/21 |

