모든 소스코드 들은 [2-1] Data_Type_String.py 에 사용한 코드가 작성되어있습니다.
https://github.com/JaeYeongSong/Blog/tree/main/Python_Basic
오늘은 Python 자료형의 문자열 자료형에 대해 알아보겠습니다.
Python 같은 다양한 프로그래밍 언어에는 '자료형' 이라는 숫자, 문자열 등 자료 형태로 사용되는 것을 말합니다.
파이썬의 자료형은 총 8가지입니다.
오늘은 저번 시간에 이어서 '문자열'에 대해 알아보도록 하겠습니다.
문자열은 무엇인가?
문자열이란 문자, 단어 등으로 이루어진 자료형입니다.
우리가 자주 사용하는 한국어, 영어, 처럼 이런 것들이 문자열이라고 말합니다.그렇지만 저번시간에 배운 숫자형도 문자열이라고 할 수 있습니다.
문자열이 무엇인지 더 알아보기 위해 예를 들어보겠습니다.
# 문자열
"한국어, 영어"
"Korean, English"
"123"
위와 같이 문자열은 모두 큰 따옴표("")로 감싸져있습니다.
여기서 의문이 생길 수 있습니다.
"123은 숫자인데 왜 문자열 자료형인가요?"라는 의문이 들것입니다.
여기 Python에서의 문자열이란 따옴표로 감싸져있으면, 모두 문자열이라고 생각하시면 됩니다.
그러므로 "123" 같은 경우에는 큰 따옴표에 감싸져있기 때문에 문자열이라고 할 수 있는 것입니다.
여기서 가장 중요한 점은 따옴표에 감싸져 있다면 모두 문자열이라고 할 수 있는 것이다.
모든 소스코드 들은 [2-1] Data_Type_String.py 에 사용한 코드가 작성되어있습니다.
문자열을 만드는 방법
따옴표를 통해 문자열 만들기
처음 예제에서는 문자열을 만들 때 큰 따옴표("")를 사용했었습니다.
하지만 큰 따옴표 외에도 문자열을 만드는 방법은 3가지 방법이 더 있습니다.
파이썬에서 문자열을 만드는 방법은 총 4가지입니다.
1. 큰 따옴표
"Python"
2. 작은 따옴표
'Python'
3. 큰 따옴표 3개
"""Python"""
4. 작은 따옴표 3개
'''Python'''
이렇게 문자열을 만드는 방법은 총 4가지가 있습니다.
근데 "문자열을 만드는 방법을 하나만 만들면 되지"라는 의문점이 생길 수 있습니다.
파이썬에서 왜 문자열을 만드는 방법이 왜 4가지가 되었는지 알아봅시다.
문자열에 따옴표를 포함할 때
문자열을 만들기 위해서는 따옴표를 사용합니다.
하지만 문자열 안에 따옴표가 들어 있어야 할 경우가 존재합니다.
특히 apostrophe(아포스트로피, ')와 강조하거나 글을 인용할 때 쓰는 따옴표(', ")를 사용해야 될 경우가 있습니다.
이때는 특별한 기술이 필요합니다. 하나하나씩 예제를 살펴봅시다.
1. 문자열에 작은 따옴표(') 포함시킬 때
'I didn't sleep.'
위 문자열은 처음으로 보았을 때 무언가 색깔이 이상하죠?
일단 위 문자열을 a라는 변수에 저장해보겠습니다.
위 문자열은 didn't에 작은 따옴표(')가 포함되어 있습니다.
이 문자열을 파이썬에 작성해보면 오류가 뜹니다.
File "[2-1] Data_Type_String.py", line 1
I didn't sleep."
^
SyntaxError: invalid syntax
SyntaxError: invalid syntax 오류 코드 같은 경우에는 구문 요류(SyntaxError)이 발생한 것입니다.
파이썬 문법에 맞지 않는 코드가 작성되었기 때문에 위와 같은 오류가 발생하는 것입니다.
만약에 위와 같은 오류가 발생하게 된다면 문자열을 잘못 인식이 되었는지, 또는 파이썬 문법에 맞는 코드인지 확인해주시기 바랍니다. 그리고 파이썬은 어디에 오류가 생겼는지 알 수 있기 때문에 line 1이라고 적혀 있어서
첫 번째 줄에서 오류가 발생했다는 것을 알 수 있습니다.
일단 본론으로 들어와서 이렇게 오류가 발생했을 때에는 문자열을 큰 따옴표(")로 감싸주셔야 합니다.
큰 따옴표로 되어있는 문자열 안에 들어있는 작은 따옴표는 문자열을 나타내기 위한 기호로 인식되지 않습니다.
그렇기 때문에 아래와 같이 작성해주셔야 합니다.
a = "I didn't sleep."
이렇게 큰 따옴표로 감싸주시게 될 경우, 정상적으로 문자열이 작성된 것을 확인하실 수 있습니다.
한 번 print 함수를 이용해서 실행해 봅시다.
# 문자열에 작은 따옴표(') 포함시킬 때
a = "I didn't sleep."
print(a)
// I didn't sleep.
결과값은 정상적으로 출력된 것을 확인할 수 있습니다.
2. 문자열에 큰 따옴표(") 포함시킬 때
""알고 있다는 것은, 내가 모른다는 걸 안다는 것이다. 이게 진정한 지혜다." - 소크라테스 명언"
위와 같이 큰 따옴표(")가 포함된 문자열이라면 아래 예제와 같이 작은 따옴표(')로 싸주면 정상적으로 문자열이 표현됩니다.
'"알고 있다는 것은, 내가 모른다는 걸 안다는 것이다. 이게 진정한 지혜다." - 소크라테스 명언'
이렇게 큰 따옴표가 문자열에 포함된다면, 작은 따옴표를 사용하여 정상적으로 문자열을 나타낼 수 있습니다.
한 번 출력해보도록 하겠습니다.
# 문자열에 큰 따옴표("") 포함시킬 때
a = '"알고 있다는 것은, 내가 모른다는 걸 안다는 것이다. 이게 진정한 지혜다." - 소크라테스 명언'
print(a)
// "알고 있다는 것은, 내가 모른다는 걸 안다는 것이다. 이게 진정한 지혜다." - 소크라테스 명언
정상적으로 큰 따옴표가 출력된 것을 확인할 수 있습니다.
이렇게 작은 따옴표 안에 사용된 큰 따옴표는 문자열을 만드는 기호로 인식되지 않습니다.
하지만 작은 따옴표와, 큰 따옴표를 하나의 문자열에 같이 사용하려면 어떻게 해야 할까요?
다음 방법을 통해 알아보겠습니다.
3. 백 슬래시(\)를 사용해서 작은따옴표(')와 큰따옴표(")를 문자열에 포함시키기
'I didn\'t sleep.'
"\"알고 있다는 것은, 내가 모른다는 걸 안다는 것이다. 이게 진정한 지혜다.\" - 소크라테스 명언"
작은 따옴표(')나 큰 따옴표(")를 문자열에 포함시키길 때 둘 다 사용하게 된다면 백 슬레시(\)를 사용하는 방법이 존재합니다. 작은 따옴표나 큰 따옴표 앞에 백 슬래시를 삽입하면 백슬래시 뒤의 따옴표는 문자열을 둘러싸는 기호의 의미가 아니라 문자 ', "를 뜻하게 됩니다.
지금까지 배운 3가지 방법을 사용해서 문자열 안에 작은 따옴표(')와 큰 따옴표(")를 포함시킬지는 코드를 작성하는 사람의 마음대로 작성하시면 됩니다.
여러 줄인 문자열을 사용하고 싶을 때
문자열이 항상 한 줄만 존재하는 것은 아닙니다.
한 줄 뿐만 아니라 2줄, 3줄 등 여러 줄의 문자열을 사용하고 싶을 때에는 어떻게 사용할까요?
만약 아래와 같은 문자열을 만들고 싶을때 어떻게 하는지 알아봅시다.
Python
자료형 - 문자열
1. 이스케이프 코드 \n 삽입하기
"Python\n자료형 - 문자열"
위 예제처럼 줄 바꿈 문자인 \n이라는 이스케이프 코드를 삽입하는 방법이 있지만 코드를 작성하는 입장으로서는 보기 어려워지고(가독성이 떨어지고), 하나의 줄이 길어진다는 단점을 가지고 있습니다.
그렇기 때문에 다음 방법을 통해 알아보겠습니다.
2. 연속된 작은 따옴표 3개(''') or 큰 따옴표 3개(""") 사용하기
첫 번째 방법인 \n 방법의 단점을 극복하기 위해서, 파이썬에서 다음과 같은 작은 따옴표 3개(''') or 큰 따옴표 3개(""")를 사용합니다.
'''
Python
자료형 - 문자열
'''
▲ 작은 따옴표 3개(''')를 사용한 경우
"""
Python
자료형 - 문자열
"""
▲ 큰 따옴표 3개(""")를 사용한 경우
print 함수를 이용해서 위 2가지의 예제가 어떻게 출력되는지 확인해봅시다.
a = '''
Python
자료형 - 문자열
'''
print(a)
a = """
Python
자료형 - 문자열
"""
print(a)
// Python
자료형 - 문자열
// Python
자료형 - 문자열
두 방법의 결과값은 모두 동일합니다. 위 예제에서도 확인할 수 있듯이 문자열이 여러 줄인 경우에는 이스케이프 코드를 사용하는 것보다 따옴표 3개를 사용하는 것이 가독성이 올라가고, 하나의 줄이 짧아집니다.
[이스케이프 코드란?]
문자열 예제에서 여러 줄의 문장을 처리할 때 백 슬래시 문자와 소문자 n을 조합한 \n 이스케이프 코드를 사용했다. 이스케이프 코드란 프로그래밍할 때 사용할 수 있도록 미리 정의해 둔 "문자 조합"이다. 주로 출력물을 보기 좋게 정렬하는 용도로 사용한다. 몇 가지 이스케이프 코드를 정리하면 다음과 같다.
코드 | 설명 |
\n | 문자열 안에서 줄을 바꿀 때 사용 |
\t | 문자열 사이에 탭 간격을 줄 때 사용 |
\\ | 문자 \를 그대로 표현할 때 사용 |
\' | 작은따옴표(')를 그대로 표현할 때 사용 |
\" | 큰따옴표(")를 그대로 표현할 때 사용 |
\r | 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동) |
\f | 폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동) |
\a | 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다) |
\b | 백 스페이스 |
\000 | 널 문자 |
이 중에서 활용 빈도가 높은 것은 \n, \t, \\, \', \"이다. 나머지는 프로그램에서 잘 사용하지 않는다.
오늘은 파이썬에서 문자열 자료형에 대해 알아보았습니다.
오늘은 문자열 자료형에 첫걸음을 딛었습니다.
다음에 문자열 자료형에 대해 한걸음을 더 걸어봅시다!
지금까지 읽어주셔서 감사합니다.
지금까지 Python 자료형 중에 자료형을 알아보는 첫 번째 시간이었습니다.