(파이썬 버전: 3.8.2)
파이썬에서 문자열은 유니코드 코드 포인트의 불변(immutable) 시퀀스입니다.
문자열 사용법을 간략히 알아보겠습니다.
텍스트 시퀀스 str 사용법
파이썬은 작은따옴표('...') 또는 큰따옴표("...")로 텍스트를 표현할 수 있습니다. 작은 따옴표와 큰 따옴표를 썼을 때 문자열에 차이는 없는데, 이스케이핑할 때만 다른 결과를 가집니다.
>>> 'abc' # 작은따옴표
'abc'
>>> "abc" # 큰 따옴표
'abc'
>>> 'doesn\'t' # \'로 작은 따옴표 이스케이핑
"doesn't"
>>> "doesn't" # 큰따옴표를 사용하면 작은따옴표 이스케이핑 필요 없음
"doesn't"
저같은 경우 보통 작은 따옴표를 쓰고, 문자열 안에 작은 따옴표가 들어가는 경우 이스케이핑 귀찮으니까 그땐 큰 따옴표를 씁니다. 작은 따옴표를 쓰는게 손이 더 편합니다. 쉬프트를 누르지 않아도 되니까요
>>> print('C:\some\name') # \n은 newline으로 이스케이핑 됨
C:\some
ame
>>> print(r'C:\some\name') # raw string
C:\some\name
raw string을 표현하려면 문자열 앞에 r을 붙입니다. raw string은 문자열 내부 이스케이핑 시키지 않은 문자열을 보여줍니다.
>>> print("""\
... Usage: thingy [OPTIONS]
... -h Display this usage message
... -H hostname Hostname to connect to
... """)
Usage: thingy [OPTIONS]
-h Display this usage message
-H hostname Hostname to connect to
여러줄의 문자열을 표현하고 싶을때는 삼중따옴표를 사용할 수 있습니다. 이때 개행문자는 자동으로 문자열에 포함됩니다. 줄 끝에 \를 붙이면 이를 방지할 수 있습니다.
>>> 3 * 'py' + 'thon'
'pypypython'
* 연산자로 문자열을 반복할 수 있고, + 연산자로 이어붙일 수 있습니다.
>>> word = 'Python'
>>> word[0]
'P'
>>> word[5]
'n'
>>> word[-1]
'n'
>>> word[-6]
'P'
>>> word[0] = 'C'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
인덱스로 문자에 접근할 수 있는데 이는 다른 자료형을 사용한 것은 아니고 단순히 길이가 1인 문자열입니다. 문자열 str은 불변 시퀀스이기 때문에 수정은 불가능합니다. 다른 문자열이 필요하면 새로 만들어야 합니다.
인덱스는 0부터 시작하고, 음수도 들어올 수 있는데 이 경우 끝에서 부터 셉니다. 인덱스가 알맞지 않은 경우 IndexError가 발생합니다.
>>> word[0:2]
'Py'
>>> word[:4]
'Pyth'
>>> word[3:]
'hon'
파이썬에서는 슬라이싱을 통해 부분 문자열(substring)을 얻을 수 있습니다. [a:b]는 [a, b)의 substring을 나타내고 a는 포함(inclusive), b는 포함하지 않습니다(exclusive).
슬라이스 인덱스를 생략하는 경우 첫번째 인덱스는 기본값으로 0을 갖고, 두번째 인덱스는 문자열의 길이가 들어갑니다.
슬라이싱할 때 범위가 벗어나도 에러가 발생하지 않습니다.
>>> len('abbbasdbasabb')
13
문자열의 길이를 알기 위해서는 len() 함수를 사용합니다.
'etc' 카테고리의 다른 글
[MySQL] 문자열 앞, 뒤 특정 문자열 제거 (TRIM) (0) | 2020.09.24 |
---|---|
[MySQL] 부분 문자열 함수 (LEFT, RIGHT, SUBSTRING) (0) | 2020.09.24 |
[Python] 숫자 자료형 (정수 int, 실수 float, 복소수 complex) (0) | 2020.09.23 |
VS code 80글자 세로선 만드는 방법 (0) | 2020.09.22 |
github 'remote rejected'로 푸시 실패하는 경우 해결방법 (access token scope) (1) | 2020.09.21 |