ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • chapter02-2 문자열 자료형
    점프 투 파이썬 2021. 9. 4. 02:58

    문자열

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

     

    "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, \\, \', \"이다. 나머지는 프로그램에서 잘 사용하지 않는다.

     

    댓글

Designed by Tistory.