Coding/Python

[python] format() 함수

dodomp0114 2021. 11. 11. 02:33
 format 함수

 

  • format 함수란?
  • 자료형을 이용한 format 함수
  • 변수를 이용한 format 함수
  • format 함수를 이용한 소수점 표현
  • f-string
  • format 함수 정렬

 

 

 

- format 함수란?

부분적으로 숫자나 문자를 자주 바꾸어 출력 해주어야 하는 서식에 용이.

출력문 안에 바꿔줄 부분을 {0},{1},{2},{3}...차례로 기입.

ex) 

>>> print("{0} X {1} = {2}".format(2,5,10))

2 X 5 = 10

 


 

- 자료형을 이용한 format

%d, %f, %s 등 자료형을 넣어준 뒤에, 기본 format 형식에 넣어주었던 .format() 대신 %() 기입. 

ex)

>>> print("%s date is %d.%d.%f"%("today",2021,11,3))

today date is 2021.11.3

 


 

-변수를 이용한 format 함수

format() 에 직접 를 넣는 과정과 다르게 변수를 입력.

출력문에 들어가는 서식에는 기존 {1},{2}.{3}... 과 다르게 {} {} {} 빈칸 기입.

ex)

>>> name1 = "KIM"
>>> age1 = 10
>>> name2 = "LEE"
>>> age2 = 11
>>> print("name : {} age : {}".format(name1, age1))
>>> print("name : {} age : {}".format(name2, age2))
 
name : KIM age : 10
name : LEE age : 11

 


 

- format 함수를 이용하여 소수점 표현하기.

 

ex)

>>> A = 0.6142021
>>> B = "{0:10.3f}".format(A)
'     0.614'

 


 

- f-string

문자열 앞에서 f를 붙혀 문자열 안에 타입과 상관없이 값을 출력.

ex)

>>> name1 = "KIM"
>>> age1 = 10
>>> name2 = "LEE"
>>> age2 = 11
>>> print(f"name : {name1} age : {age1}")
>>> print(f"name : {name2} age : {age2}")

name : KIM age : 10
name : LEE age : 11

 


 

- format 함수 정렬

 

format 함수를 이용하여 문자열안의 문자를 정렬.

 

정렬 종류 코드 특징
왼쪽 정렬 "{n1:C<n2},".format() n2 : n2 크기의 문자열 생성.

n1 : 일반 format 함수 형식처럼 0,1,2,3,4...와 같이 증가.
       {}와 같이 공백으로도 표현 가능.

C : 전체 n2 크기의 문자열 중 n1에 들어갈 공간을
     제외하고 남은 공간을 모두 채울 문자 입력.
오른쪽 정렬 "{n1:C>n2)".format() "
가운데 정렬 "(n1:C^n2)".format() "

 

ex)

### 왼쪽 정렬 ###

# 문자열 길이는 10, HAPPY단어 맨왼쪽 구성, 남은 공간은 공백으로 채움.
>>> A = "HAPPY"
>>> B = "{0:<10}".format(A)
>>> print (B)
'HAPPY     '

# 두개의 문자열 생성, 각 10, 20 길이의 문자열.
# 첫번째 fornat에는 Wonderful 단어 기입, 10칸 중 단어를 제외한 나머지 부분은 공백으로 채워짐.
# 두번째 fornat에는 Happy 단어 기입, 20칸 중 단어를 제외한 나머지 부분은 '#'기호 으로 채워짐.
>>> A = "{0:<10} and {1:#<20} day".format("Wonderful","Happy")
>>> print (A)
'Wonderful  and Happy############### day'

 

### 오른쪽 정렬 ###

# 문자열 길이는 10, wonderful 단어 맨오른쪽 구성, 남은 공간은 공백으로 채움.
>>> A = "wonderful"
>>> B = "{0:>20}".format(A)
>>> print (B)
'           wonderful'

# 두개의 문자열 생성, 각 10, 20 길이의 문자열.
# 첫번째 format에는 HAPPY 단어 기입, 10칸 중 단어를 제외한 나머지 부분은 공백으로 채워짐.
# 두번째 format에는 wonderful 단어 기입, 20칸 중 단어를 제외한 나머지 부분은 '#'기호 으로 채워짐.
>>> A = "{0:>10} and {1:#>20} day".format("HAPPY","Wonderful")
>>> print (A)
'     HAPPY and ###########Wonderful day'

 

### 가운데 정렬 ###

# 문자열 길이는 10, HAPPY 단어 가운데로 구성, 남은 공간은 공백으로 채움.
>>> A = "HAPPY"
>>> B = "{0:^10}".format(A)
>>> print (B)
'  HAPPY   '

# 두개의 문자열 생성, 각 10, 20 길이의 문자열.
# 첫번째 format에는 HAPPY 단어 기입, 10칸 중 단어를 제외한 나머지 부분은 공백으로 채워짐.
# 두번째 format에는 wonderful 단어 기입, 20칸 중 단어를 제외한 나머지 부분은 '#'기호 으로 채워짐.
>>> A = "{0:^10} and {1:#^20} day".format("HAPPY","Wonderful")
>>> print (A)
'  HAPPY    and #####Wonderful###### day'