파이썬

입문자를 위한 파이썬 기초 #8. 문자열 다루기

넬티아 2021. 1. 12. 00:30
728x90

네이버 시리즈 : 입문자를 위한 파이썬 기초

문자열


파이썬으로 문자열을 다뤄보자. 문자열은 문자를 나열한 집합이다. 쌍따옴표(")나 홑따옴표(')를 사용해 문자열을 입력한다. 두 가지를 번갈아 사용하거나 역 슬래시(\)를 사용해 쌍 따옴표나 홑 따옴표를 문자열의 일부로 사용 가능하다. 다음 예시를 직접 실행해보면서 문자열을 익혀보자.

>>> 'Hello'
'Hello'
>>> "Hello"
'Hello'
>>> "I don't like you"
"I don't like you"
>>> 'You said "I like you"'
'You said "I like you"'
>>> "Please. don\'t go..."
"Please. don't go..."

여러 줄의 문장은 """ 나 '''를 사용하면 편리하다. 이 문구에서 엔터는 자동으로 새 줄로 인식한다.

>>> print("""
Hello. Click this button.
Please...""")

Hello. Click this button.
Please...

문자열 사이에는 이스케이프 문자를 사용할 수 있다. 이스케이프는 탈출한다는 의미를 가진다. 이스케이프 문자(\)를 사용해 본래의 기능에서 빠져나와 다음 표의 기능을 사용할 수 있다.

다수의 문장을 입력할 때 \를 사용하면 엔터키를 무시한다.

>>> print("""\
Hello. Click this button.
Please...""")
Hello. Click this button.
Please...

\n은 개행한다. (행을 바꾼다.)

>>> print("1st\n2nd")
1st
2nd

문자열 앞에 r을 삽입하면 raw string으로 사용해 앞에 있는 이스케이프 특수 문자를 무시한다.

>>> print('c:\new')
c:
ew
>>> print(r'c:\new')
c:\new

 

연산


문자열에 곱하기 연산(*)을 사용하면 문자를 여러 번 출력하고 더하기 연산을 사용하면 문자열을 더한다.

>>> 'AB' + 'C'
'ABC'
>>> 'A' * 20
'AAAAAAAAAAAAAAAAAAAA'

 

데이터 조회


대괄호 ([,])로 문자열 데이터에서 필요한 일부분만을 조회가 가능하다. 문자열의 첫 문자는 0번이다. 문자열을 대괄호 안에 콜론(:)을 사용하면 인덱스 범위로 구한다.

>>> s1 = "abcdefghijk"
>>> s1[0]
'a'
>>> s1[1]
'b'
>>> s1[3:4]
'd'
>>> s1[0:4]
'abcd'

범위 데이터 조회에서 앞을 생략하면 처음부터, 뒤를 생략하면 끝까지 조회한다.

>>> s1[:5]
'abcde'
>>> s1[5:]
'fghijk'

마이너스(-)를 사용하면 뒤에서부터 조회한다.

>>> s1[-1] 
'k' 
>>> s1[-4:-1] 
'hij'

문자열 내에 있는 특정 문자열을 찾고 싶으면 find나 index를 사용한다.
find와 index는 문자열을 찾으면 해당 데이터가 몇 번째 위치하는지 알려준다.

>>> s1.find('ab')
0
>>> s1.find('c')
2
>>> s1.index('a')
0

만약 데이터를 찾지 못하면 find는 -1, index는 오류를 출력하니 find 사용을 권장한다. 어느 정도 규모가 있는 프로그램에서 문자열을 찾는 기능을 삽입할 때 오류가 발생하면 프로그램이 멈추기 때문이다.

>>> s1.find('z')
-1
>>> s1.index('z')
Traceback (most recent call last):
  File "<pyshell#31>", line 1, in <module>
    s1.index('z')
ValueError: substring not found