티스토리 뷰



문자열 표현으로 파이썬에서의 타입 이름은 str 입니다. 작은 따옴표('), 큰 따옴표(") 모두 사용 할 수 있는데 작은 따옴표(')로 시작한 문자열은 반드시 작은 따옴표(')로 끝나야 하고 중간에 작은 따옴표(')를 문자열로 표현할 때는 \'와 같이 Escape합니다. 그렇지만 중간에 큰 따옴표가 올 때는 Escape할 필요가 없습니다. 이 표현법은 큰 따옴표(")에도 동일하게 적용 됩니다. r'  '의 방식으로 Raw 스트링을 기술할 수 있는데 r다음의 스트링을 Escape하지 않고 기술한 그대로 처리하기 위한 방식 입니다.


인접한 스트링은 하나의 스트링으로 간주 합니다. 예를 들어 "aa" "bb" "cc"로 기술하면 "aabbcc"와 동일 효과를 냅니다. 여러줄에 걸친 스트링을 표현할 경우에는 따옴표를 3개 붙인 ''' 또는 """를 사용해서 표현할 수 있다. 아래는 그 사용 예 입니다.


# -*- coding: cp949 -*-
va='국어'
print va
va='Mother\'s egg'
print va
va="""국어를 사랑하자
그러자. 안녕!"""
print va
va="철수가 \"안녕\"이라고 말했다"
print va


>>>

국어

Mother's egg

국어를 사랑하자

그러자. 안녕!

철수가 "안녕"이라고 말했다



■ 스트링 타입의 연산자


문자열에 적용할 수 있는 연산자들은 다음과 같습니다.


  • a+b
    스트링 a뒤에 b를 연결 합니다(Concatenates). += 연산자도 사용할 수 있습니다.

    >>> 'aaa'+"bbb"

    'aaabbb'

  • a*i
    스트링 a를 i회 반복 합니다. *= 연산자도 사용할 수 있습니다.

    >>> 'abc' * 3

    'abcabcabc'

  • len(a)
    스트링 a의 길이 리턴

  • chr(n), ord(c)
    n으로 지정한 문자를 리턴하거나, 문자 c의 코드값을 리턴 합니다.

  • a in b
    스트링 a가 스트링 b에 있으면 True 아니면 False를 리턴 합니다.

  • a[i]
    스트링 a의 i 위치에 있는 문자를 리턴 합니다. 위치는 0이 맨 앞 문자를 의미 합니다. i가 음수면 뒤 부터 거꾸로 위치를 지정하는데 맨뒤의 문자 위치는 -1이고 맨 뒤에서 두번째 문자는 -2로 지정하는 방식 입니다. 주의할 것은 a[1]='a'처럼 개별 요소를 변경하는데 사용할 수는 없습니다. 이런 필요가 있다면 지정한 위치 앞뒤를 잘라서 다시 하나의 스트링으로 붙이는 방식을 적용해야 합니다.

  • a[i:j:k]
    스트링 a의 i 위치 부터 j위치까지(j위치는 포함되지 않습니다. 직전 위치의 문자까지만) k만큼씩 움직이며 문자를 추출 합니다. k가 음수면 역방향 진행을 의미 합니다. i를 생략하면 맨앞이란 의미이고, j를 생략하면 i의 반대편 맨끝을 의미하고 k를 생략하면 1을 의미 합니다.

    >>> 'abcde'[0:5:1]

    'abcde'

    >>> 'abcde'[0:5:2]

    'ace'

    >>> 'abcde'[-1:-6:-1]

    'edcba'

    >>> 'abcde'[-1:-6:-2]

    'eca'

  • a[::-1]
    스트링 a를 거꾸로 뒤집 습니다.
    위의 예에서  'abcde'[-1:-6:-1]과 동일한 효과를 간단하게 사용하는 방법 입니다.

  • a.split('sep')
    스트링 a를 sep 기준으로 분리한 리스트를 리턴 합니다. 'sep'를 생략하면 White space를 기준으로 단어들을 추출하여  리스트를 생성 합니다.

    >>> ' I am tom    !'.split(' ')

    ['', 'I', 'am', 'tom', '', '', '', '!']

    >>> ' I am tom    !'.split('  ')

    [' I am tom', '', '!']


    위의 예를 보면 첫번째는 공백 1개, 두번째는 공백 2개로 split를 수행했는데 tom다음에 공백4개가 있는 것을 감안해 보면 분리자 sep 한개를 기준으로 원소가 분리 됨을 확인할 수 있습니다.

  • a.partition('sep')
    스트링을 sep기준으로 나누어 "sep 이전 스트링, sep, sep 이후 스트링" 형태의 리스트를 리턴 합니다.

  • a.splitlines()
    줄단위로 나눈 리스트를 리턴 합니다.
    기본적으로는 라인 구분을 제거하는데 splitlines(True)로 지정하면 라인 구분을 남깁니다.

  • a.strip()
    스트링 a의 양쪽에 있는 공백, 탭, 개행등의 White space를 제거 합니다. lstrip()은 좌측 공백만 제거하고, rstrip()은 우측 공백만 제거 합니다.

  • a.center(w)
    w 길이로 a를 가운데 맞추고 양쪽에 공백으로 채웁니다. ljust(w), rjust(w)는 w길이로 a를 좌/우로 맞추고 나머지는 공백으로 채웁니다.

  • a.upper()
    대문자로 전환

  • a.lower()
    소문자로 전환

  • a.title()
    각 단어의 첫자만 대문자로하고 나머지는 소문자로 변환 합니다.

  • a.isalnum(), a.isalpha(), a.isdigit(), a.islower(), a.isspace(), a.isupper()
    스트링의 구성 내용을 각 조건별로 검사하여 맞으면 True 리턴

  • a.startswith(), a.endswith()
    스트링 a가 지정한 스트링으로 시작하거나 끝나면 True 리턴

  • a.find(sub), a.index(sub)
    스트링 a에서 sub를 찾아 인덱스를 리턴 합니다. 못찾으면 find는 -1을 리턴하고 index는 오류를 발생시킵니다.
    rfind(), rindex()는 우측 부터 검색 합니다.

  • a.capitalize()
    스트링 a의 첫문자만 대문자로하고 나머지는 소문자로 변환한다.

    >>> 'aBBcc'.capitalize()

    'Abbcc'

  • a.count(‘sub’)
    스트링 a중에서 sub 가 몇번 나오는지 개수를 리턴 합니다.

    >>> 'Go go go Fighting!'.count('go')

    2

    >>> 'Go go go Fighting!'.count('g')

    4

  • a.replace(‘sub1’,’sub2’,n)
    스트링 a에서 sub1을 찾아 sub2로 대치시킨다.
    n이 없으면 모든 sub1을 sub2로 바꾸고, n을 지정하면 n번만 바꾼다

    >>> 'Go go go Fighting!'.replace('go', 'Go')

    'Go Go Go Fighting!'

    >>> 'Go go go Fighting!'.replace('go', 'Go', 1)

    'Go Go go Fighting!'







댓글
댓글쓰기 폼