티스토리 뷰

지금까지 우리는 print() 문을 통해 문자열을 여러개 출력할 때 + 나 , 를 이용해서 해 봤습니다. + 를 이용하면 문자열들 사이에 띄어쓰기가 없고 , 를 이용하면 띄어쓰기로 구분되어 문자열이 출력되지요.

print("a" + "b") # ab
print("a", "b") # a b

 

이 외에도 다양한 포맷으로 문자열을 출력하는 방법이 있습니다. 보통은 본인에게 가장 편한 방법을 한 가지 정해서 사용해도 되지만 때에 따라서는 다른 방법을 사용해야 하는 경우도 생기기 때문에 모든 사용법을 익혀두시면 좋습니다.

 

첫 번째 방법으로는 % 가 있습니다. 따옴표로 둘러싸인 문자열 중간에 %d, %c, %s 등을 넣어두고 문자열 뒤에 % 를 적은 후 어떤 값을 적으면 그 값이 문자열 중간에 있는 %d, %c, %s 위치에 들어가게 되지요.

 

print("문자열 %d 문자열" % 정수)

print("문자열 %c 문자열" % 문자)

print("문자열 %s 문자열" % 문자열)

 

이 때 %d 는 정수(decimal)를, %c 는 문자(character)를, %s 는 문자열(string) 을 의미하며 일반적으로는 집어 넣으려는 값의 자료형에 따라 다르게 지정해야 합니다. 단, %s 를 쓰게 되면 정수, 문자, 문자열 상관 없이 모든 값을 집어 넣을 수 있습니다.

# 방법 1

print("나는 %d살입니다." % 20) # 나는 20살입니다
print("나는 %s을 좋아합니다." % "파이썬") # 나는 파이썬을 좋아합니다.
print("Apple 은 %c로 시작해요." % "A") # Apple 은 A로 시작해요.

print("나는 %s살입니다." % 20) # 나는 20살입니다 (%s 로도 정수값 표현 가능)

만약에 문자열 내에 2개 이상의 값을 넣으려고 한다면 문자열 이후에 오는 % 뒤의 값들을 괄호로 감싸고 콤마로 구분합니다. 그러면 순서대로 문자열 내의 % 위치에 값이 들어가게 되지요.

print("나는 %s색과 %s색을 좋아해요." % ("파란", "빨간")) # 나는 파란색과 빨간색을 좋아해요.

 

 

두 번째 방법은 .format() 인데요. 문자열 내에 중괄호 { } 를 집어 넣고 뒤에서 .format(값1, 값2, ...) 을 입력하면 이 값들이 문자열 내의 중괄호 부분에 들어가게 됩니다. 이 때 { } 만 넣으면 순서대로 값1, 값2, ... 가 들어가게 되며 만약 {0}, {1} 과 같이 인덱스 값을 의미하는 숫자를 넣게 되면 {0} 위치에는 값1, {1} 위치에는 값2, ... 이런 식으로 들어가게 됩니다. 만약 {1}, {0} 과 같이 숫자를 뒤집으면 입력한 값도 뒤집혀서 나오게 되겠지요.

# 방법 2

print("나는 {}살입니다.".format(20)) # 나는 20살입니다.
print("나는 {}색과 {}색을 좋아해요.".format("파란", "빨간")) # 나는 파란색과 빨간색을 좋아해요
print("나는 {0}색과 {1}색을 좋아해요.".format("파란", "빨간")) # 나는 파란색과 빨간색을 좋아해요
print("나는 {1}색과 {0}색을 좋아해요.".format("파란", "빨간")) # 나는 빨간색과 파란색을 좋아해요

 

세 번째 방법은 이름을 사용하는 것입니다. 문자열 내에 {이름} 과 같이 넣어두고, 마치 변수를 사용하는 것처럼 .format 내에서 이름과 값을 정의해두면, 그 이름에 해당하는 부분에 값을 집어넣게 됩니다.

# 방법 3

print("나는 {age}살이며, {color}색을 좋아해요.".format(age=20, color="빨간"))
# 나는 20살이며, 빨간색을 좋아해요

print("나는 {age}살이며, {color}색을 좋아해요.".format(color="빨간", age=20))
# 나는 20살이며, 빨간색을 좋아해요 (.format 뒤에 순서를 변경해도 괜찮아요)

 

마지막 방법은 f-string 입니다. 문자열 앞에 f 를 추가해주면, 앞에서 선언된 변수 이름을 그대로 사용할 수 있습니다. 예제처럼 age 와 color 라는 변수를 선언하고, 문장 안에서 {age}, {color} 와 같이 중괄호로 둘러싼 변수 이름을 적으면 코드가 보다 간결해집니다.

# 방법 4 (파이썬 버전 3.6 부터 가능)

age = 20
color = "빨간"
print(f"나는 {age}살이며, {color}색을 좋아해요.") # 나는 20살이며, 빨간색을 좋아해요.

 

잠깐!
실행했을 때 소스코드 내용 일부와 함께 SyntaxError: invalid syntax 와 같은 에러가 난다면, 출력된 소스코드 바로 윗 문장의 닫는 괄호 ) 가 누락되었을 가능성이 가장 큽니다. print( ... format( ) 동작을 하고 나서 닫는 괄호가 2개가 아닌 1개만 있는 실수가 잦으니 여는 괄호와 닫는 괄호의 갯수가 같은지 꼭 확인해주세요.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함