티스토리 뷰
파이썬은 싱글쿼트('...') 와 더블쿼트("...") 로 문자열을 만들 수 있고, 문자열의 연산도 가능하다.
>>> 'spam eggs' # 싱글쿼트
'spam eggs'
>>> 'doesn\'t' # 싱글쿼트로 감싼 문자열에서 싱글쿼트를 표현하려면 \ 를 사용
"doesn't"
>>> "doesn't" # 더블쿼트로 감싼 문자열에서는 싱글쿼트는 하나의 문자로 인식
"doesn't"
>>> '"Yes," they said.' # 싱글쿼트로 감싼 문자열에서는 더블쿼트는 하나의 문자로 인식
'"Yes," they said.'
>>> "\"Yes,\" they said." # 더블쿼트로 감싼 문자열에서 더블쿼트를 표현하려면 \를 사용
'"Yes," they said.'
>>> '"Isn\'t," they said.' # 의도치 않은 결과가 나올 수 있음
'"Isn\'t," they said.'
print() 함수를 사용하면 싱글쿼트, 더블쿼트를 생략하고 특수문자와 이스케이프문자(\) 를 표현하기 때문에 더 보기좋은 결과를 화면에 출력한다.
>>> '"Isn\'t," they said.'
'"Isn\'t," they said.'
>>> print('"Isn\'t," they said.')
"Isn't," they said.
>>> s = 'First line.\nSecond line.' # \n 은 줄바꿈을 의미함
>>> s # print() 함수를 사용하지 않으면 \n 이 그대로 출력됨
'First line.\nSecond line.'
>>> print(s) # print() 를 사용하면 의도한대로 줄바꿈되어 출력됨
First line.
Second line.
\ 를 포함한 특수문자 (ex. \n 또는 \t 등) 를 문자열로 표현하기 위해서는 싱글쿼트 시작 전 r 을 입력한다.
>>> print('C:\some\name') # \n 은 줄바꿈을 의미하므로 의도하지 않은 결과 발생
C:\some
ame
>>> print(r'C:\some\name') # 싱글쿼트 시작 전 r 을 입력하면 \n 은 문자로 인식
C:\some\name
여러줄로 이루어진 문자열을 표현하고 싶을 때는 싱글쿼트 세 개 ('''...''') 또는 더블쿼트 세 개 ("""...""") 로 문자열을 생성한다. 이렇게 이루어진 문자열에서 줄바꿈을 표현하고 싶지 않을 때는 줄 끝에 \ 를 붙인다.
# 세 개의 더블쿼트로 감싼 문자열은 자동으로 줄 끝에 \n 이 추가된다.
>>> 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
# 멀티라인 문자열에서 줄바꿈을 원하지 않을 때는 줄 끝에 \ 를 추가한다.
>>> 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 * 'un' + 'ium' # un 문자열을 세 번 반복하고 그 뒤에 ium 문자열을 붙임
'unununium'
싱글쿼트 또는 더블쿼트로 감싼 문자열을 여러개 나열하면 자동으로 결합된다.
>>> 'Py' 'thon'
'Python'
>>> "Py" "thon"
'Python'
이 기능은 길이가 긴 문자열을 끊어서 표현할 때 유용하다.
>>> text = ('Put several strings within parentheses '
... 'to have them joined together.')
>>> text
'Put several strings within parentheses to have them joined together.'
단, 변수에 담긴 문자열과 일반 문자열은 위와 같은 방식으로 결합할 수 없다. 변수와 일반 문자열의 결합은 + 연산자를 사용한다.
>>> prefix = 'Py'
>>> prefix 'thon' # 변수에 담긴 문자열과 단순 문자열은 위의 방식으로 결합되지 않음
File "<stdin>", line 1
prefix 'thon' # 변수에 담긴 문자열과 단순 문자열은 위의 방식으로 결합되지 않음
^
SyntaxError: invalid syntax
>>> prefix + 'thon' # + 연산자를 이용하여 결합
'Python'
문자열의 인덱스를 이용하여 특정 위치의 문자를 추출할 수 있다. 문자열 인덱스는 0부터 시작한다.
>>> word = 'Python'
>>> word[0] # 0번 인덱스인 문자 P 를 출력
'P'
>>> word[5] # 5번 인덱스인 문자 n 을 출력
'n'
음수는 문자열의 뒤쪽을 기준으로 인덱싱을 한다. 뒤쪽에서 시작하는 인덱스는 -1 부터 시작한다.
>>> word[-1] # 마지막 문자
'n'
>>> word[-2] # 뒤에서 두번째 문자
'o'
>>> word[-6] # 뒤에서 여섯번째 문자
'P'
인덱스를 이용하여 문자열 슬라이싱도 가능하다. 한 가지 주의할 점은 : 앞의 인덱스는 해당 문자를 포함하고 : 뒤의 인덱스는 해당 문자를 포함하지 않는 다는 것이다.
>>> word[0:2] # 0번 인덱스(포함)부터 2번 인덱스(미포함) 전까지
'Py'
>>> word[2:5] # 2번 인덱스(포함)부터 5번 인덱스(미포함) 전까지
'tho'
인덱스를 생략한 슬라이싱도 가능하다.
>>> word[:2] + word[2:] # 맨 처음부터 2번 인덱스 전까지 (Py) + 2번 인덱스부터 맨 마지막까지 (thon) 결합
'Python'
>>> word[:4] + word[4:] # 맨 처음부터 4번 인덱스 전까지 (Pyth) + 4번 인덱스부터 맨 마지막까지 (on) 결합
'Python'
>>> word[:2] # 처음부터 2번 인덱스 전까지
'Py'
>>> word[4:] # 4번 인덱스부터 마지막까지
'on'
>>> word[-2:] # 뒤에서 두 번째 인덱스부터 마지막까지
'on'
파이썬에서는 문자열 변경이 불가능하다. 특정 위치의 문자를 바꾸기 위해서는 슬라이싱과 결합을 이용하여 새로운 문자열을 만들어야 한다.
>>> word[0] = 'J' # 에러 발생
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> word[2:] = 'py' # 에러 발생
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> 'J' + word[1:] # 문자열 슬라이싱과 + 연산자를 이용한 새로운 문자열 생성
'Jython'
>>> word[:2] + 'py'
'Pypy'
추가로 len() 함수는 문자열의 길이를 return 한다.
>>> s = 'supercalifragilisticexpialidocious'
>>> len(s)
34
END
'IT > Python' 카테고리의 다른 글
[Python] 리스트 (더 자세하게 알아보기) (0) | 2020.07.09 |
---|---|
[Python] 함수 (Function) (0) | 2020.07.08 |
[Python] 제어문 (if, for, range(), break, continue) (0) | 2020.07.02 |
[Python] 리스트 (0) | 2020.06.30 |
[Python] 숫자 연산 (0) | 2020.06.28 |