1. 시퀀스 자료형 : 문자열, 리스트, 튜플
1) 인덱싱(indexing) : [k]
2) 슬라이싱(Slicing) : [s:t]
3) 연결하기(Concatenation) : +
4) 반복하기(Repetition) : *
5) 멤버십 테스트(Membership Test) : in
6) 길이 정보 : len
2. 문자열 정의
1) 한 줄 문자열 : ' or "
2) 여러 줄 문자열 : ''' or """
3) 이스케이프 문자
Escape Sequence | Meaning |
---|---|
newline |
Ignored |
Backslash () | |
' |
Single quote (' ) |
" |
Double quote (" ) |
a |
ASCII Bell (BEL) |
b |
ASCII Backspace (BS) |
f |
ASCII Formfeed (FF) |
n |
ASCII Linefeed (LF) |
N{name} |
Character named name in the Unicode database (Unicode only) |
r |
ASCII Carriage Return (CR) |
t |
ASCII Horizontal Tab (TAB) |
uxxxx |
Character with 16-bit hex value xxxx (Unicode only) |
Uxxxxxxxx |
Character with 32-bit hex value xxxxxxxx (Unicode only) |
v |
ASCII Vertical Tab (VT) |
ooo |
Character with octal value ooo |
xhh |
Character with hex value hh |
3. 문자열 변경
4. 문자열 포매팅(Formatting) : %s, %r, %c, %d, %i, %u, %o, %x, %X, %e, %E, %f, %g, %G
5. 문자열 메쏘드
>>> # 대ㆍ소문자로 변환 관련 메쏘드
>>> s = 'i like programming.'
>>> s.upper()
'I LIKE PROGRAMMING.'
>>> s.upper().lower()
'i like programming.'
>>> 'I Like Programming'.swapcase()
'i lIKE pROGRAMMING'
>>> s.capitalize()
'I like programming.'
>>> s.title()
'I Like Programming.'
>>> # 검색 관련 메쏘드
>>> s = 'i like programming, i like swimming.'
>>> s.count('like') # 문자열 s에서 'like'라는 부분문자열이 발생한 횟수를 리턴
2
>>> s.find('like') # 'like'의 offset를 리턴(검색)
2
>>> s.find('my') # 찾는 문자열이 없을 경우 -1 리턴
-1
>>> s.rfind('like') # find와 같지만 문자열 s의 뒤쪽부터 탐색
22
>>> s.index('like')
2
>>> s.index('my') # find와 같지만 찾는 문자열이 없을 경우 예외 발생
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
s.index('my')
ValueError: substring not found
>>> s.rindex('like') # index와 같지만 문자열 s의 뒤쪽부터 탐색
22
>>> s.startswith('i like') # i like로 시작하는 문자열인가?
True
>>> s.endswith('swimming.') # swimming.으로 끝나는 문자열인가?
True
>>> s.startswith('progr', 7) # 7번째 문자열이 progr로 시작하는가?
True
>>> s.endswith('like', 0, 26) # 0부터 26번째 위치 사이의 문자열이 like로 끝나는가?
True
>>> # 편집 및 치환 관련 메쏘드
>>> u = ' spam and ham '
>>> u.strip() # 좌우 공백 제거
'spam and ham'
>>> u.rstrip() # 오른쪽 공백 제거
' spam and ham'
>>> u.lstrip() # 왼쪽 공백 제거
'spam and ham '
>>> ' abd '.strip()
'abd'
>>> '><>abc<><><>'.strip('<>')
'abc'
>>> '><><abc<><><>n'.strip('<>')
'abc<><><>n'
>>> u'u4000u4001abcu4000'.strip(u'u4000')
u'u4001abc'
>>> u.replace('spam', 'spam, egg') # 'spam'을 'spam, egg'로 변경
' spam, egg and ham '
>>> # 문자열 분리와 결합 관련 메쏘드
>>> u = ' spam and ham '
>>> u.split() # 공백으로 분리
['spam', 'and', 'ham']
>>> u.split('and') # 'and로 분리
[' spam ', ' ham ']
>>> t = u.split()
>>> ':'.join(t) # ':' 문자로 결합
'spam:and:ham'
>>> print 'n'.join(t) # 줄 바꾸기로 결합
spam
and
ham
>>> lines = '''first line
second line
third line'''
>>> lines.splitlines() # 라인 단위로 분리
['first line', 'second line', 'third line']
>>> s = 'one:two:three:four'
>>> s.split(':', 2) # 두 번만 분리
['one', 'two', 'three:four']
>>> s.rsplit(':', 1) # 오른쪽부터 처리
['one:two:three', 'four']
>>> # 정렬 관련 메쏘드
>>> u = 'spam and egg'
>>> u.center(60) # 전체 60문자의 가운데에 맞춤
' spam and egg '
>>> u.ljust(60) # 왼쪽에 맞춤
'spam and egg '
>>> u.rjust(60) # 오른쪽에 맞춤
' spam and egg'
>>> u.center(60, '-') # 공백 대신 '-' 문자로 채움
'------------------------spam and egg------------------------'
>>> '1tandt2'.expandtabs() # 탭(t)을 8자 공백으로 사용
'1 and 2'
>>> '1tandt2'.expandtabs(4)
'1 and 2'
>>> # 구성된 문자열의 특성 유무 파악 관련 메쏘드
>>> '1234'.isdigit()
True
>>> 'abcd'.isalpha()
True
>>> '1abc234'.isalnum()
True
>>> 'abc'.islower() # 소문자인가?
True
>>> 'ABC'.isupper()
True
>>> ' trn'.isspace() # 공백문자인가?
True
>>> 'This Is A Title'.istitle() # 제목 문자열인가?
True
>>> # 채우기 및 자리 맞추기 관련 메쏘드
>>> s = '123'
>>> s.zfill(5)
'00123'
>>> 'goofy'.zfill(6) # 빈 자리는 0으로 채워짐
'0goofy'
6.. string 모듈
7. 유니 코드