문자열의 정의와 특성 ¶
- 파이선의 여러 자료형중 시퀀스(sequence) 자료형에 속함.
- 시퀀스(Sequence) 자료형의 특징
- 다수의 객체 저장
- 객체들간의 순서가 존재.
- 각 객체들을 참조 가능(첨자 이용)
- 다수의 객체 저장
- 굳이 C로 비유하자면 배열과 비슷하다. (비슷하다는 얘기는 다르다는 얘기)
~cpp >>> s = 'abcdef' # 문자열 >>> L = [100,200,300] # 리스트 >>> t = ('tuple', 'object', 1, 2) # 튜플
시퀀스(Sequence) 자료형 연산(명령) ¶
- 인덱싱(Indexing) = k
- 슬라이싱(Slicing) = [[ s : t ]
- 연결하기(Concatenation) = +
- 반복(Repeat) = *
- 멤버십 데스트(Membership Test) = in
- 길이정보 = len
-- 실습 대상 --
~cpp >>> s = 'abcdef' >>> l = [100, 200, 300]
문자열 정의 ¶
- 문자열 정의는 '(작은 따옴표) 혹은 " (큰 따옴표) 로 정의할수 있다.
- 작은 따옴표와 큰 따옴표 사이에 차이는 없는것 같음
- 작은 따옴표 혹은 큰 따옴표를 세개 연속 사용해서 정의하는 경우 쓰는 그대로 정의됨.
~cpp >>> s = 'Handsome guy Chang-Jae' >>> L = "Hwang = Babo" >>> p = ''' 내가 지금 이짓을 왜 하고 있는가??? 황재선은 못생겼다. 나휘동은 레오나르동이다. 장창재는 최고의 파일럿이다. 오늘 비행하는데 손이 시려웠다. 이게 다 뭔소리하는걸까, 나도 모르겠다.'''
- 쓰이는 기호중 중요한것 몇가지
기호 | 용도 |
\n 또는 \012 | 줄바꾸기 |
\t | 탭 |
\Enter | 행의 계속(이어짐) |
\ | \문자 자체 |
- 문자열 연산은 앞의 시퀀스(Sequence)자료형 연산을 따른다.
- 문자열은 그 자체 값을 변경할 수 없는, 변경 불가능(immutable) 자료형이다.
문자열 메쏘드(1.6버전 이상) ¶
- 자주 쓰일거라고 예상 되는것 중심으로 편집.
대소문자 변환 ¶
~cpp >>> s = 'i like programing' >>> s.'''upper'''() # 대문자로 변환 'I LIKE PROGRAMING' >>> s.'''upper'''().'''lower'''() # 대문자를 소문자로 변환 'i like programing' >>> s.'''capitalize'''() 'I like programing' # 첫 문자를 대문자로
검색 과련 ¶
~cpp >>> s = 'i like programing, i like swimming' >>> s.count('like') 2 >>> s.find('like') 2 >>> s.find('my') -1 >>> s.rfind('like') 22 >>> s.index('like') 2 >>> s.index('my') Traceback (most recent call last): File "<pyshell#40>", line 1, in ? s.index('my') valueError : substring not found in string.index
분리와 결합 관련 ¶
~cpp >>> u = ' spam and ham ' >>> u .'''split'''() # 공백을 기준으로 분리 ['spam','and','ham'] <--- 단어의 리스트가 얻어짐. >>> u.'''split'''('and') # 'and' 를 기준으로 분리. 'and'는 리스트에 없음. ['spam', 'ham'] >>> t = u.'''split'''() >>> ':'.'''join(t)''' # ':' 문자로 결합. 틀리기 쉬우니 주의할것!! 'spam:and:ham' >>> print '\n'.join(t) # 줄바꾸기로 결합. spam and ham
- 그외 나머지 메소드는 책 혹은 인터넷 참조