Do it! 점프 투 파이썬

chapter 02-2 문자열 자료형_1. (문자열은 어떻게 만들고 사용할까?)

판다조아 2022. 6. 2. 18:56

문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다. 예를 들어 다음과 같은 것들이 문자열이다.

"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 perl

위와 같은 문자열을 food 변수에 저장하고 싶다고 가정하자. 문자열 중 Python's에 작은따옴표(')가 포함되어 있다.

 

이럴 때는 다음과 같이 문자열을 큰따옴표(")로 둘러싸야 한다. 큰따옴표 안에 들어 있는 작은따옴표는 문자열을 나타내기 위한 기호로 인식되지 않는다.

>>> food = "Python's favorite food is perl"

프롬프트에 food를 입력해서 결과를 확인하자. 변수에 저장된 문자열이 그대로 출력되는 것을 볼 수 있다.

>>> food
"Python's favorite food is perl"

시험 삼아 다음과 같이 큰따옴표(")가 아닌 작은따옴표(')로 문자열을 둘러싼 후 다시 실행해 보자.

'.Python'이 문자열로 인식되어 구문 오류(SyntxError)가 발생할 것이다.

>>> food = 'Python's favorite food is perl'
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 easy." 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개(''') 또는 큰따옴표 3개(""")를 사용한다.

>>> multiline = ' ' '
. . . Life is too short
. . . You need python
. . . ' ' '

작은따옴표 3개를 사용한 경우

 

>>> multiline = " " "
. . . Life is too short
. . . You need python
. . . " " "

큰따옴표 3개를 사용한 경우

 

print(multiline)을 입력해서 어떻게 출력되는지 확인해 보자.

>>> print(multiline)
Life is too short
You need python

 

두 경우 모두 결과는 동일하다. 위 예에서도 확인할 수 있듯이 문자열이 여러 줄인 경우 이스케이프 코드를 쓰는 것보다 따옴표를 연속해서 쓰는 것이 훨씬 깔끔하다.

 

* 이스케이프 코드란?

문자열 예제에서 여러 줄의 문장을 처리할 때 백슬래시 문자와 소문자 n을 조합한 '\n' 이스케이프 코드를 사용했다. 이스케이프 코드란 ㄴ프로그래밍할 때 사용할 수 있도록 미리 정의해 둔 '문자 조합'이다. 주로 출력물을 보기 좋게 정렬하는 용도로 사용한다. 몇 가지 이스케이프 코드를 정리하면 다음과 같다.

코드 설명
\n 문자열 안에서 줄을 바꿀 때 사용
\t 문자열 사이에 탭 간격을 줄 때 사용
\\ 문자 \를 그대로 표현할 때 사용
\' 작은따옴표(')를 그대로 표현할 때 사용
\" 큰따옴표(")를 그대로 표현할 때 사용
\r 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동)
\f 폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동)
\a 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다)
\b 백스페이스
\000 널 문자

이 중에서 활용 빈도가 높은 것은 \n, \t, \\, \' \"이다. 나머지는 프로그램에서 잘 사용하지 않는다.

 

 

 

 

출처 : "점프 투 파이썬"