본문 바로가기

python

python - format(문자열)

포맷팅
문자열을 출력하는 방법은 여러가지가 있습니다. 그중에 가장 많이 사용하는 것이 print() 함수입니다. 문자열을 출력할 때에는 어떤 알림이나 정보를 보여줘야 하는 이유가 대부분 입니다. 그런데 그 정보는 일정한 틀 안에 세부 정보는 가변적으로 계속 바꿔야하는 경우가 많습니다. 그래야 정보로써의 제 기능도 할 수 있습니다. 예를 들어 날짜를 알려주는 알림문자가 있다고 합시다. "지금은 6시 42분 입니다."라는 문장이 있는데 몇시가 되었든 항상 같은 문장을 보여준다면 이 알림은 기능을 못한다고 볼 수 있습니다. 문장안에 있는 숫자는 시간이 지나면서 계속 다른 정보를 보여줘야 합니다. 이때 필요한 것이 포맷팅이라 할 수 있겠습니다. 

포맷 1
이 방법은 문자열을 쪼개서 더하기(+)로 붙이는 방식입니다. 

 

hour = 6
min = 42

print("지금은 " + str(hour) + "시" + str(min) + "분 입니다.")
 > 지금은 6시 42분 입니다. 

 

포맷 2
이 방법은 문자열을 그대로 작성하고 약속된 기호를 넣어 그 부분에 변수를 따로 넣어주는 방식입니다. 

 

# 이 방식의 약속된 기호는 %d, %s으로 사용하는데 
# 각각의 의미는 숫자(decimal)와 문자열(string)입니다. 
# 그리고 사용할 문자열 뒤에 %()연결하여 순서대로 변수를 넣어줍니다. 
hour = 6
min = 42

print("지금은 %d시 %d분 입니다." % (hour,min))
 > 지금은 6시 42분 입니다. 

 

포맷 3
이 방법도 비슷하지만 기호가 다르고 권장하는 방식이라고 합니다. 

 

hour = 6
min = 42

# 문장에서 변수를 받는부분은 {}와 같이 하고 안에 들어가는 숫자는 인덱스 입니다. 
# 인덱스의 순서에 맞춰서 format함수 안에 들어가는 인자들이 들어갑니다. 
print("지금은 {0}시 {1}분 입니다.".format(hour,min))
# 인덱스가 아닌 이름으로 매핑하여 넣는 방법도 있습니다. 
print("지금은 {hour}시 {min}분 입니다.".format(hour=9,min=23))
# 변수를 받는 부분에서 포맷 2와 같이 형식을 정해줄 수 있습니다. 
print("지금은 {0:d}시 {1:f}분 입니다.".format(hour,min))
 > 지금은 6시 42분 입니다.
 > 지금은 9시 23분 입니다.
 > 지금은 6시 42.0분 입니다.