개요
문자열은 종종 텍스트로 구성되기 때문에 문장부호, 줄 바꿈, 들여 쓰기를 통해 문자열을 사람이 읽기 쉽도록 제어하고 싶을 때가 많습니다.
이번 포스트에서는 파이썬(Python)에서 문자열의 서식을 제어하는 방법을 살펴보겠습니다.
문자열 리터럴
먼저 문자열 리터럴과 문자열 값이 무엇인지 알아보겠습니다. 문자열 리터럴은 따옴표를 포함하여 컴퓨터 프로그램의 소스코드에 표시됩니다. 문자열 값은 print()
함수를 호출하고 프로그램을 실행할 때 표시되는 것입니다.
print("Hello, World!")
예를 들어 위 "Hello, World!" 프로그램에서 문자열 리터럴은 "Hello, World!"
이며, 문자열 값은 따옴표가 없는 Hello, World!
입니다. 다시 말해 문자열 값은 파이썬 프로그램을 실행하면 터미널 창에 출력되는 것입니다.
하지만 인용을 할 때라든지 문자열 값에 따옴표가 필요한 경우도 있습니다. 이런 경우 단순한 문자열 리터럴을 사용해서는 우리가 원하는 문자열 값을 표시할 수 없으므로 문자열 리터럴에 파이썬에서 제공하는 별도의 형식을 적용해 문자열 값을 출력해야 합니다.
따옴표와 작은따옴표
파이썬은 문자열을 표시할 때 큰 따옴표와 작은따옴표를 모두 사용할 수 있습니다. 따라서 작은따옴표로 묶인 문자열 안에 큰 따옴표를 사용하여 문자열 값으로 큰 따옴표를 포함시키는 것은 간단합니다.
'Sammy says, "Hello!"'
큰 따옴표로 묶은 문자열에 작은따옴표를 사용하려면 다음과 같이 할 수 있습니다.
"Sammy's balloon is red."
만약 큰 따옴표와 작은 따옴표를 조합해서 사용해야 한다면 위와 같이 간단히 해결할 수 없습니다. 이때는 이스케이프 문자를 사용해야 합니다. 이에 대한 내용은 아래에서 소개하겠습니다.
여러 줄
긴 문자열은 여러 줄에 나누어 출력하면 텍스트를 보다 쉽게 읽을 수 있습니다.
여러 줄에 걸쳐있는 문자열을 만들려면 작은따옴표 세 개('''
) 또는 큰 따옴표 세 개("""
)를 사용하여 문자열을 묶습니다.
'''
This string is on
multiple lines
within three single
quotes on either side.
'''
"""
This string is on
multiple lines
within three double
quotes on either side.
"""
This string is on
multiple lines
within three single
quotes on either side.
※ 주의해서 볼 점은 문장의 앞, 뒤로 빈 출이 삽입되었다는 점입니다. 이것을 제거하려면 다음과 같이 변경하거나 다음 문단에서 살펴볼 이스케이프 문자를 활용해야 합니다.
'''This string is on
multiple lines
within three single
quotes on either side.'''
이스케이프 문자(Escape Character)
문자열 형식을 지정하는 또 다른 방법은 이스케이프 문자(escape character)를 사용하는 것입니다. 이스케이프 문자는 다른 문자와 결합된 백 슬래시 (\
)로 시작하여 특정 문자열에 형식을 지정합니다.
다음은 몇 가지 일반적인 이스케이프 문자 목록입니다.
Escape character | How it formats |
---|---|
\ | (여러줄 문자열에서) 다음줄에 이어짐 |
\\ |
백슬래시 |
\' |
작은 따옴표 |
\" |
큰 따옴표 |
\n | 줄 바꿈 |
\t | 탭 |
이스케이프 문자를 사용하여 앞서 본 예제에 따옴표를 추가하겠습니다.
print("Sammy says, \"Hello!\"")
Sammy says, "Hello!"
마찬가지로 이스케이프 문자 \'
를 사용하여 작은따옴표로 묶인 문자열에 작은따옴표를 추가할 수도 있습니다.
print('Sammy\'s balloon is red.')
Sammy's balloon is red.
앞서 삼중 따옴표("""
또는 '''
)를 사용하여 문자열을 출력할 때 위쪽과 아래쪽에 공백이 추가되었습니다. \
이스케이프 키를 문자열의 앞, 뒤에 사용하면 텍스트를 매우 읽기 쉽게 유지하면서 이 공백을 제거할 수 있습니다.
"""\
This multi-line string
has no space at the
top or the bottom
when it prints.\
"""
This string is on
multiple lines
within three single
quotes on either side.
마찬가지로 \n
이스케이프 문자를 사용하여 enter
또는 return
키를 누르지 않고 줄을 바꿀 수 있습니다.
print("This string\nspans multiple\nlines.")
This string
spans multiple
lines.
이스케이프 문자를 조합해 사용할 수도 있습니다. 여러 줄로 된 문자열(\n
)을 출력하고 항목별 목록에 탭 간격(\t
)을 포함시켜 보겠습니다.
print("1.\tShark\n2.\tShrimp\n10.\tSquid")
1. Shark
2. Shrimp
10. Squid
이스케이프 문자 \t
가 제공하는 들여 쓰기는 위 예시에서 두 번째 열이 정렬되도록 하여 출력을 사람이 읽기 편하게 만듭니다.
이스케이프 문자 \n
역시 우리가 원하는 대로 문자열을 출력하여 텍스트를 읽기 쉽도록 만들어 주었습니다. 하지만 이 경우 다음 소스코드와 비교한다면 어느 쪽이 가독성이 좋은 것인지 쉽게 판단할 수 있을 것입니다. 따라서 이러한 경우는 동일한 기능을 위해 삼중 따옴표를 선택하는 것이 좋습니다.
print("""\
1.\tShark
2.\tShrimp
10.\tSquid\
""")
결론
이번 포스트에서는 문자열 작업을 통해 Python 3에서 텍스트의 서식을 지정하는 여러 가지 방법을 살펴보았습니다. 앞서 살펴본 기능을 사용하면 사용자가 출력되는 텍스트를 쉽게 읽을 수 있도록 프로그램의 문자열을 화면에 올바르게 렌더링 시킬 수 있습니다.
출처
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Python] 초보자를 위한 프로젝트 (나만의 비트코인 가격 알리미) (0) | 2021.01.18 |
---|---|
[Python] PIP 사용법 (0) | 2020.11.22 |
문자열 내장함수 (String built in functions) (0) | 2020.05.12 |
문자열 다루기의 기초 (0) | 2020.05.09 |