[Python Tutorial] 파이썬의 문자형 자료형 - Chapter.05

2019. 8. 25. 17:47Python/ㄴ Tutorial

문자열이란?

문자열(String)이란 문자, 단어등으로 구성되어있으며 프로그래밍을 처음 시작한 사람들이 헷갈려하는 부분이기도 하다.

"Hello, world!"
"1st"
"123"

위 문자는 모두 문자열 자료형에 해당한다. "123" 은 정수형 자료형이라고 생각할 수 있겠으나 위 예제의 경우 "(따옴표)로 지정되어있으므로 문자형 자료형이다. 프로그래밍에 있어서, 즉 컴퓨터는 인간이 사용하는 언어체계를 사용하지 않는다. 소문자a와 대문자A를 서로 다른 문자로 인식한다는점에서 알 수 있다. 123과 "123"은 다르다.

문자열을 생성하는 방법

파이썬뿐만아니라 대부분의 다른 프로그래밍 언어도 문자열을 생성하는법은 많지만 파이썬에서의 문자열을 만드는 방식은 4가지가있다.

1. 큰따옴표(")로 감싸기

"Hello, world!"

2. 작은따옴표(')로 감싸기

'Hello, world!'

3. 큰따옴표(") 3개를 연속적으로 감싸기

"""Hello, world!"""

4. 작은따옴표(') 3개를 연속적으로 감싸기

'''Hello, world!'''

문자열을 저장하는 방식은 위와같이 4가지의 방법이 있다. 여기서 프로그래밍을 해본 사람은 이유를 알 수도 있고 해보지 않은사람은 왜 이렇게 문자열을 저장하는 방식이 다양한지 알지 못할 것이다.

text = "it's mine"
print(text)
text = 'it's mine'
print(text)

위 두 코드를 한번씩 실행해보자. 아마 첫 번째 코드는 정상적으로 it's mine이 출력되는 반면 두 번째 코드는 구문 에러를 표시하며 정상적으로 실행이 되지 않을것이다.

이유는 간단하다 문자열을 만들어주기 위해서는 위에서 설명했듯 큰따옴표나 따옴표로 감싸주어야하는데 it's mine에는 작은따옴표가 포함되어있기 때문에 두 번째 코드에서는 'it'만을 문자열로, s mine'은 인식하지 못하는 상태가 된것이다. 따라서 작은따옴표가 포함되는 문자열을 작성 할 경우에는 큰따옴표로 문자열을 묶어주고, 마찬가지로 큰따옴표가 포함되는 문자열을 작성 할 경우에는 아래 예제처럼 작은따옴표로 문자열을 묶어주도록 하자.

text = '큰 따옴표(")는 작은따옴표로 감싸서 출력할 수 있습니다.'
print(text)

그렇다면 (큰)따옴표를 여러개 사용하는 방식은 어떤 상황에서 사용할까?

바로 여러 줄을 담아야하는 긴 문자열을 저장할 때 사용한다.

text_1 = """Hello,
e
l
l
o
,"""

text_2 = '''world!
o
r
l
d
!'''

print(text_1)
print(text_2)

이런식으로 여러줄을 출력해야할 때 사용한다.

또한 이전 튜토리얼을 살펴보면 """, '''는 여러 줄 주석으로 사용 할 수도 있다고 설명했는데 이 따옴표들을 주석으로 이용하기 위해서는 아래 예제처럼 프로그램이 수행되는데 있어서 영향을 주지 않는곳에 사용해야 주석으로 인식된다.

print("Hello")
"""
이것은 주석입니다.
따옴표를 이용한 여러 줄 주석은
프로그램이 수행되는데 있어서 영향이 없는곳에 작성해야 주석으로 인식됩니다.
"""
print("world!")

5. 큰따옴표(")와 작은따옴표(')가 포함된 문자열을 생성하는 방법

그렇다면 큰따옴표(")와 작은따옴표(')가 모두 포함되는 문자열은 어떻게 문자열로 생성하는지 아래 예제를 살펴보자

text = "\"큰 따옴표와 '작은 따옴표를 동시출력하고싶을땐 이스케이프 시퀀스인 역슬래시\"\\\"를 사용합니다."
print(text)

해당 예제를 처음 볼 땐 조금 난해할 수 있다.
대부분의 프로그래밍 언어에서의 역슬래시(\)는 이스케이프 시퀀스로 사용된다.

 

위 예제에서는 문자열을 큰따옴표(")로 감싸주었기때문에 큰따옴표(")는 특수문자가 되었다고 볼 수 있다. 따라서 파이썬 프로그램에게 내가 지금 출력 할 큰따옴표(")는 특수문자이니 이스케이프 시퀀스(\)를 사용하여 이를 일반 문자열로 표현하겠다고 의미하는것이다. 또한 이스케이프 시퀀스인 역슬래시(\)또한 마찬가지로 특수문자이기때문에 순전히 문자열로써 표현하기 위해 \\를 사용 한 것이다.

 

위 역슬래시 이외에도 이스케이프 시퀀스의 종류는 여러가지가 있다. 이중 한가지인 줄바꿈 이스케이프 시퀀스인 "\n"을 마지막으로 설명하고 이스케이프 시퀀스 표를 살펴보고 마치도록 하자.

print("Hello,\nworld!")

위 예제의 경우 프로그램을 실행시키면 두 줄로 출력이 될것이다. 그렇다 \n은 줄바꿈 이스케이프 시퀀스이다.
이 부분은 어렵게 생각할것없다. print()함수를 이용해서 문자열을 출력 할 때 줄바꿈이 필요하다면 단순히 일반적인 word 문서를 작성할때 줄바꿈하기위해 enter키를 사용하듯 enter대신에 그 자리에 \n만을 사용해주면 된다.

마지막으로 아래 이스케이프 시퀀스 표를 훑어보도록하자.

여러가지 이스케이프 시퀀스가 담긴 표

1 2 3 4 5 6 7 ··· 51