본문 바로가기

프로그래밍/Python

파이썬 강좌 :: 07. 문자열을 위한 자료형

문자열


여러분 안녕하세요 ! 이번 강좌는 우리가 매우 자주 사용하게 될 문자열에 대해서 얘기해보도록 할거에요. 문자열이란 무엇일까요? 문자열이란 문자들이 일렬로 배열되어있는 것을 의미해요. 여러분이 생각하는 문장이 바로 문자열이에요.




목차

1. 문자열 표현하기

2. 문자열 다루기

3. 특수문자

4. 서식문자

5. 문자열 메서드



문자열 표현하기


파이썬에서 문자열을 표현하는 방법은 크게 작은 따옴표 2개로 감싸는 방법큰 따옴표 2개로 감싸는 방법 2가지가 있어요.


첫번째로 작은 따옴표 2개로 감싸서 문자열을 표현하는 방법이에요.


>>> 'hello python'

'hello python'


마찬가지로 큰 따옴표 2개로 감싸서 문자열을 표현할 수 있어요.


>>> "hello python"

'hello python'


작은 따옴표를 사용할 지, 큰 따옴표를 사용할 지는 전적으로 프로그래머 몫이에요. 그러나 특별한 상황에서는 어느 한쪽을 반드시 사용해야할 수도 있어요. 예를 들면 다음 문자열을 출력하려면 반드시 작은 따옴표를 사용해야되요. 왜그럴까요?


he said to me "come on!" last night.


그 이유는 문자열에 큰 따옴표도 들어가있기 때문이에요. 파이썬 인터프리터는 처음 큰 따옴표를 만난 후 그 다음으로 큰 따옴표를 만날 때까지 문자열을 인식하기 때문에 다음과 같이 어법 오류를 발생시켜요.


>>> "he said to me "come on!" last night.

  File "<stdin>", line 1

    "he said to me "come on!" last night.

                       ^

SyntaxError: invalid syntax


때문에 큰 따옴표를 문자열로서 인식하기 위해선 작은 따옴표로 감싸주어야 한답니다.


>>> 'he said to me "come on!" last night.'

'he said to me "come on!" last night.'


반대의 경우도 마찬가지겠죠? 문자열에 작은 따옴표가 사용되었다면 큰 따옴표로 감싸주어 표현해줘야 해요.


물론 이 방법말고도 특수문자를 사용하는 방법이 있어요. 그 방법에 대해서는 맨 마지막에 알아보도록 하고 지금은 문자열과 관련된 여러 연산을 소개해보도록 할게요.




문자열 다루기


파이썬은 효율적인 문자열 조작을 위한 여러가지 문자열 연산들을 제공하고 있어요. 이 덕분에 파이썬 프로그래머들은 문자열을 아주 손쉽게 다룰 수 있답니다. 자 그럼 자주 사용되는 문자열 연산들에 대해서 알아보도록 할까요?


첫번째로는 두 문자열을 합치는 연산이에요. 기호는 + 를 사용하며 앞 문자열과 뒷 문자열을 합쳐 하나의 문자열을 결괏값으로 반환해줘요.


>>> s = 'hello, ' + 'python!'

>>> s

'hello, python!'


두번째로는 문자열 반복 연산이에요. 기호는 * 를 사용하며 해당 문자열을 곱한 수만큼 반복한 문자열을 결괏값으로 반환해줘요.


>>> s = 'python' * 3

>>> s

'pythonpythonpython'


세번째로는 인덱스 연산이에요. 처음에 문자열이란 문자들의 배열이라고 말씀드렸었죠? 문자들은 0번부터 순서대로 위치번호를 부여받는데 그것을 인덱스라고 불러요. 이 인덱스 연산을 사용하면 해당 위치의 문자를 얻어낼 수 있어요.


>>> s = 'abcdefg'

>>> s[0]

'a'

>>> s[1]

'b'

>>> s[2]

'c'


만약 문자가 존재하지 않는 인덱스로 접근하려고 한다면 다음처럼 인덱스 에러가 발생할거에요.


>>> s[10]

  File "<stdin>", line 1, in <module>

IndexError: string index out of range


문자가 존재하지 않는 인덱스로 접근하는건 절때 해선 안되요.



특수문자


특수문자란 말 그대로 특수한 목적을 가진 문자들을 의미해요. 예를 들면 스페이스바를 눌렀을 때 작성되는 띄어쓰기문자 라던지 엔터키를 눌렀을 때 작성되는 개행 문자가 전부 특수문자에요. 이러한 특수문자들은 표현하기가 불편하기 때문에 다른 문자로 표현하기로 약속했어요. 다음은 특수문자가 정리된 표에요.


특수문자 

 의미

 \n

 개행문자(줄 바꿈)

 \t

 탭

 \r

 캐리지 리턴

 \0

 널문자

 \\

 문자 '\'

 \'

문자 작은따옴표 '

 \"

 문자 큰따옴표 "


꽤 많은 특수문자가 있죠? 하지만 실제로 자주 쓰이는 것은 제 기준으로 \n, \\, \', \" 정도에요. 자주 사용되는 것만 외워두시고 나머지는 필요할 때 찾아서 사용하는 편이 좋겠죠?



서식 문자열


파이썬은 서식 문자열을 지원해요.


>>> age = 15

>>> s = "my age is %d"%age

>>> s

'my age is 15'


서식 문자열을 작성하는 과정은 다음과 같아요.


1. 원하는 위치에 서식문자를 작성

2. 서식문자에 대응하는 변수를 문자열 뒤에 작성




서식문자와 형변환


서식문자를 사용할 때는 대응하는 변수의 자료형과의 관계를 잘 따져야 해요.


>>> PI = 3.14

>>> s = "PI is %d"%PI

>>> s

PI is 3


분명 변수 PI의 값은 3.14인데 서식문자와 교체된 값은 3이네요. 어떻게 된걸까요?


원인은 서식문자 %d에 있어요. %d는 대응하는 변수의 내용을 정수로 변환하기 때문에 3.14가 정수로 형이 변환되어 3으로 바뀌어 버린거죠.