[Python 입문 강좌 - 7] 파이썬 문자열(Str) 사용과 포매팅

 

더보기

 

☞    문서의 내용은 가장 하단 참고문헌 및 사이트를 참고하여 필자가 보기 쉽도록 정리한 내용입니다.

☞    틀린 내용 및 저작권 관련 문의가 있는 경우 문의하시면 수정 및 삭제 조치하겠습니다.


오늘은 문자형에 대해 자세히 알아보고 문자열을 사용해보도록 하겠습니다. 문자형은 자료형의 하나로 우리가 사용하는 문자, 숫자, 기호 등의 집합이라고 생각하면 됩니다. 자료형(Data Type)이 무엇인지는 [Python 입문 강좌 -5]에서 알아봤습니다. 자료형에 대해 궁금하시면 링크를 통해 확인해주세요.

 

문자열은 아래처럼 따옴표로 묶여있습니다. 따옴표로 묶여있지 않으면 오류가 납니다. 여기서 010-0000-0000, 372는 숫자형이라고 생각할 수 있지만 따옴표로 묶여있으면 숫자도 문자로 취급합니다. 

 


1. 큰따옴표(")로 묶기

 

>>> "안녕하세요."
>>> "Hello World"
>>> "010-0000-0000"
>>> "372"
>>> "●"

 


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

 

>>> '반갑습니다'
>>> 'Nice to meet you'
>>> '02-000-000'
>>> '★'

 


3. 큰따옴표 3개(""")로 묶기

 

>>> """어디를 가든 마음을 다해 가라 - 공자"""

 


4. 작은따옴표 3개(''')로 묶기

 

>>> '''Beauty is no use without brains - Aesop'''

 


문자열 줄 바꿈

 

우리가 위에서 봤던 예시들은 모두 문자열이 한 줄이었습니다. 그런데 여러 줄을 입력해야 한다면 어떻게 해야 할까요? 다음과 같은 방법으로 줄 바꿈을 이용해서 여러 줄을 만들면 됩니다.

 


1. 이스케이프 코드를 사용한 줄바꿈

 

첫 번째 방법은 이스케이프 코드를 사용하는 방법입니다. (이스케이프 코드는 백슬래시 문자(\)와 특정 소문자를 조합하여 미리 정의해 둔 조합을 출력해주는 코드입니다.) 이스케이프 코드 중 \n을 사용하면 줄바꿈을 할 수 있습니다.

 

>>> "안녕하세요. \n 반갑습니다. \n 저는 홍길동 입니다."

안녕하세요.
반갑습니다.
저는 홍길동 입니다.

 


2. 삼중 따옴표를 사용한 줄바꿈

 

두 번째 방법은 삼중 따옴표를 사용하는 방법입니다. 이스케이프 코드를 사용하는 방법보다 직관적이고 편리합니다. 따옴표 안에서 줄바꿈을 하는 경우 자동적으로 줄 바꿈 돼서 출력됩니다.

 

>>> """
    안녕하세요.
    반갑습니다.
    저는 홍길동 입니다.
    """
    
>>> '''
    안녕하세요.
    반갑습니다.
    저는 홍길동 입니다.
    '''

안녕하세요.
반갑습니다.
저는 홍길동 입니다.

안녕하세요.
반갑습니다.
저는 홍길동 입니다.

 



문자열 포매팅

 

문자열을 출력할 때 특정 문자만 변경되어야 하는 경우가 생깁니다. 예를 들어서 "오늘 날씨는 흐림입니다.", "오늘 날씨는 맑음입니다."의 경우 "오늘 날씨는", "입니다."를 제외하고 흐림, 맑음이라는 특정 문자만 변경됩니다. 이런 특정 문자만 변경하고 싶을 때 사용하는 것이 문자열 포매팅이라고 말합니다.

 


1. %를 이용한 포매팅

 

첫 번째 방법은 %를 이용한 포매팅입니다. 이 방법은 포매팅하고자 하는 영역에 % 와 특정 소문자를 조합하여 넣어주고 문자열 뒤에 %를 붙이고 값을 입력하는 방법으로 포매팅을 합니다. 대표적으로 %s(문자열), %d(정수), %f(실수) 가 있습니다.

 

>>> tmpString = "흐림"
>>> "오늘 날씨는 %s 입니다." % tmpString
오늘 날씨는 흐림입니다.

>>> tmpInt = 177
>>> "저의 키는 %d 입니다." % tmpInt
저의 키는 177입니다.

>>> tmpFloat = 0.65
>>> "오차 값은 %f 입니다." % tmpFloat
오차 값은 0.65입니다.

>>> tmpPersen = 50
>>> "동전의 확률은 %d%%입니다." % tmpPersen 
# 문자 %를 사용하고 싶은 경우 %%를 이용해 사용할 수 있습니다.
동전의 확률은 50%입니다.

 


2. format을 이용한 포매팅

 

두 번째 방법은 format을 이용한 포매팅입니다. 이 방법은 포매팅하고자 하는 영역에 {}를 넣어주고 문자열 뒤에 format("값")을 붙여 포매팅하는 방법입니다.

 

>>> tmpString = "흐림"
>>> "오늘 날씨는 {} 입니다.".format(tmpString)
오늘 날씨는 흐림입니다.

>>> tmpInt = 177
>>> "저의 키는 {} 입니다.".format(tmpInt)
저의 키는 177입니다.

>>> tmpFloat = 0.65
>>> "오차 값은 {} 입니다.".format(tmpFloat)
오차 값은 0.65입니다.

>>> tmpArrow = "값"
>>> "괄호안에 {{{}}}을 넣어주세요.".format(tmpArrow)
# 문자 {를 사용하고 싶은 경우 {{를 이용해 사용할 수 있습니다.
# 문자 }를 사용하고 싶은 경우 }}를 이용해 사용할 수 있습니다.
괄호안에 {값}을 넣어주세요.

 

2개 이상의 값을 한 번에 넣을 수도 있습니다. 2개 이상의 값을 넣는 경우 가장 앞에 있는 영역을 {0}, 그 뒤로 {1}, {2}, {3}... 순으로 표시합니다. 이렇게 순서로 넣는 방법뿐만 아니라 이름을 이용해서 넣을 수도 있습니다. {} 안에 원하는 이름을 넣어주고 format(이름=값)의 형태로 넣어주면 됩니다. 두 방법을 혼용해서 사용할 수도 있습니다.(직관성을 위해서 혼용하지 않는 것을 추천합니다.)

 

>>> "이름은 {0}입니다. 점수는 {1}점 입니다. 그러므로 학점은 {2}입니다.".format("홍길동",95,"A+")
이름은 홍길동입니다. 점수는 95입니다. 그러므로 학점은 A+입니다.

>>> "이름은 {name}입니다. 점수는 {score}점 입니다. 그러므로 학점은 {Credit}입니다.".format(name ="홍길동", score =95, Credit = "A+")
이름은 홍길동입니다. 점수는 95점 입니다. 그러므로 학점은 A+입니다.

>>> "이름은 {0}입니다. 점수는 {score}점 입니다. 그러므로 학점은 {Credit}입니다.".format("홍길동", score =95, Credit = "A+")
이름은 홍길동입니다. 점수는 95점 입니다. 그러므로 학점은 A+입니다.

 

format은 이외에도 정렬, 공백 채우기, 소수점 표현하기, 천 단위 쉼표 표시하기 등 다양한 기능을 제공합니다. 이 기능들은 필요에 따라 추후에 학습해도 문제가 없기에 입문 강좌에서는 다루지 않습니다.

 


 3. f-string을 이용한 포매팅

 

f-string은 파이썬 3.6 버전부터 사용가능한 방법으로 문자열 앞에 f를 붙이고 포매팅하고자 하는 영역에 {값}을 넣어주면 됩니다. 다른 방법에 비해 매우 편리하고 직관적으로 사용할 수 있다.(필자가 가장 많이 사용하는 방법입니다.)

 

name = "홍길동"
score = 95
credit = "A+"
print(f"이름은 {name}. 점수는 {score}점 입니다. 그러므로 학점은 {credit}입니다.")

 

f-string은 format을 이용한 방법과 마찬가지로 정렬, 공백 채우기 등 다양한 기능을 제공합니다. 이 기능들은 필요에 따라 추후에 학습해도 문제가 없기에 입문강좌에서는 다루지 않습니다.

 


참고문헌

 

 

02-2 문자열 자료형

`[추천 동영상 강의]` : [https://www.youtube.com/watch?v=STGCSIt3nsE](https://www.youtube.com/watch?v=STGCS…

wikidocs.net

 

2.4 파이썬의 문자열 형식화 — 데이터 사이언스 스쿨

.ipynb .pdf to have style consistency -->

datascienceschool.net