chapter02-2 문자열 자료형
문자열
문자열이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다. 예를 들어 다음과 같은 것들이 문자열이다.
"Life is too short, You need Python" "a" "123" |
위 문자열 예문을 보면 모두 큰따옴표("")로 둘러싸여 있다. '123은 숫자인데 왜 문자열이지?' 라는 의문이 드는 독자도 있을 것이다. 따옴표로 둘러싸여 있으면 모두 문자열이라고 보면 된다.
문자열은 어떻게 만들고 사용할까?
위 예에서는 문자열을 만 들 때 큰따옴표("")만을 사용했지만 이 외에도 문자열을 만드는 방법은 3가지가 더있다. 파이썬에서 문자열을 만드는 방법은 총 4가지 이다.
1. 큰따옴표(")로 양쪽 둘러싸기
"Hello World" |
2. 작은따옴표(')로 양쪽 둘러싸기
'Python is fun' |
3. 큰따옴표 3개를 연속(""")으로 써서 양쪽 둘러싸기
"""Life is too short, You need Python""" |
4. 작은따옴표 3개를 연속(''')으로 써서 양쪽 둘러싸기
'''Life is too short, You need Python''' |
단순함이 자랑인 파이썬이 문자열을 만드는 방법은 왜 4가지나 가지게 되었을까? 그 이유에 대해 알아보자.
문자열 안에 작은 따옴표나 큰따옴표를 포함시키고 싶을 때
문자열을 만들어 주는 주인공은 작은 따옴표(')와 큰따옴표(")이다. 그런데 문자열 안에도 작은 따옴표와 큰따옴표가 들어 있어야 할 경우가 있다. 이떄는 좀 더 특별한 기술이 필요하다.
예제를 하나씩 살펴보면서 원리를 익혀 보자.
1. 문자열에 작은따옴표 (') 포함시키기
Python's favorite food is parl |
위와 같은 문자열을 food 변수에 저장하고 싶다고 가정하자. 문자열 중 Python's에 작은따옴표(')가 포함되어 있다.
이럴떄는 다음과 같이 문자열을 큰따옴표(")로 둘러싸야 한다. 큰따옴표 안에 들어 있는 작은 따옴표는 문자열을 나타내기 위한 기호로 인식되지 않는다.
food="Python's favorite food is perl" |
프롬프트에 food를 입력해서 결과를 확인하자. 변수에 저장된 문자열이 그대로 출력되는 것을 볼 수 있다.
food "Python's favorite food is perl" |
시험 삼아 다음과 같이 큰따옴표(")가 아닌 작은따옴표(')로 문자열을 둘러싼 후 다시 실행해보자. 'Python'이 문자열로 인식되어 구문 오류가 발생할 것이다.
food='Python's favorite food is perl' 1 File "<stdin>", line 1 food='Python's favorite food is perl' ^ SyntaxError: invalid syntax |
2. 문자열에 큰따옴표(") 포함시키기
"Python is very easy." he says. |
위와 같이 큰따옴표(")가 포함된 문자열이라면 어떻게 해야 큰따옴표가 제대로 표현될까?
다음과 같이 문자열을 작은따옴표(')로 둘러싸면 된다.
say='"Python is very. "he says.' |
이렇게 작은따옴표(') 안에 사용된 큰따옴표(")는 문자열을 만드는 기호로 인식되지 않는다.
3. 백슬래시(\)를 사용해서 작은따옴표(')와 큰따옴표(")를 문자열에 포함시키기
food='Python\'s favorite food is perl' say="\"Python is very easy.\"he says." |
작은따옴표(')나 큰따옴표(")를 문자열에 포함시키는 또 다른 방법은 백슬래시(\)를 사용하는 것이다. 즉 백슬래시(\)를 작은따옴표(')나 큰따옴표(") 앞에 삽입하면 백슬래시(\) 뒤의 작은 따옴표(')나 큰따옴표(")는 문자열을 둘러싸는 기호의 의미가 아니라 문자('), (")그 자체를 뜻하게 된다.
어떤 방법을 사용해서 문자열 안에 작은따옴표(')와 큰따옴표(")를 포함시킬지는 각자의 선택이다. 대화형 인터프리터를 실행한 후 위 예문을 꼭 직접 작성해보자.
여러 줄인 문자열을 변수에 대입하고 싶을 때
문자열이 항상 한 줄짜리만 있는 것은 아니다. 다음과 같이 여러 줄의 문자열을 변수에 대입 하려면 어떻게 처리해야 할까?
Life is too short You need python |
1. 줄을 바꾸는 이스케이프 코드 '\n' 삽입하기
multiline="Life is too short\nYou need python" |
위 예처럼 줄바꿈 문자'\n'을 삽입하는 방법이 있지만 읽기에 불편하고 줄이 길어지는 단점이 있다.
2. 연속된 작은따옴표 3개(''') 또는 큰따옴표 3개(""") 사용하기
위 1번의 단점을 극복하기 위해 파이썬에서는 다음과 같이 작은따옴표 3개(''') 또는 큰따옴표(""")를 사용한다.
multiline=''' Life is too short You need python ''' |
multiline=""" Life is too short You need python """ |
print(multiline)을 입력해서 어떻게 출력되는지 확인해보자.
print(multiline) Life is too short You need python |
두 경우 모두 결과는 동일하다. 위 예에서도 확인할 수 있듯이 문자열이 여러 줄인 경우 이스케이프 코드를 쓰는 것보다 따옴표를 연속해서 쓰는 것이 훨씬 깔끔하다.
이스케이프 코드란?
문자열 예제에서 여러 줄의 문장을 처리할 때 백슬래시 문자와 소문자 n을 조합한 '\n' 이스케이프 코드를 사용했다.
이스케이프 코드란 프로그래밍할 때 사용할 수 있도록 미리 정의해둔 '문자 조합'이다. 주로 출력물을 보기 좋게 정령하는 용도로 사용한다. 몇 가지 이스케이프 코드를 정리하면 다음과 같다.
코드 | 설명 |
\n | 문자열 안에서 줄을 바꿀 때 사용 |
\t | 문자열 사이에 탭 간격을 줄 때 사용 |
\\ | 문자 \를 그대로 표현할 때 사용 |
\' | 작은따옴표(')를 그대로 표현할 때 사용 |
\" | 큰따옴표(')를 그대로 표현할 때 사용 |
\r | 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동) |
\f | 폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동) |
\a | 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다) |
\b | 백스페이스 |
\000 | 널문자 |
이 중에서 활용 빈도가 높은것은 \n, \t, \\, \', \"이다. 나머지는 프로그램에서 잘 사용하지 않는다.