본문 바로가기
Python

[파이썬] format 함수를 사용해서 문자열 포맷팅하기

by 메이플 🍁 2022. 3. 8.

⚠️ 이 포스팅은 인프런님의 프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)을 공부하고 정리한 블로그 포스팅입니다. ⚠️

 

포스팅에 해당하는 목차는 다음과 같습니다:

섹션 2. 파이썬 완전 기초

  • 파이썬 Print 사용법(1-1)
  • 파이썬 Print 사용법(1-2)
  • 파이썬 Print 사용법(1-3)

 


 

문자열을 형식화하는 두가지 방법

  1. % 기호를 사용한 방식
  2. format() 함수를 사용한 방식

 

1. format() 함수를 사용한 방식

format 함수는 복잡한 문자열을 간단하게 처리하기 위한 메소드

 

✏️  기본 문법

print('{} {} {}...'.format(a, b, c...))
# {}안에는 포맷의 방법을 받고 format 함수의 파라미터는 값을 받는다
# 첫번째 {}는 인덱스 값이 0, 두번째 {}는 인덱스 값이 1 그리고 세번째 {}는 인덱스 값이 2다
# 인덱스 0번값을 가진 {}이 값 a를 포매팅한다
# % operator와 달리 format은 파라미터 format 메소드 안에는 파라미터로 정수, 문자열, 실수를 순서에 상관없이 받는다
👉  예제
print('{} {} {}'.format(1, 'hello', 3.14))
# 1 hello 3.14

print('{} {} {}'.format(3.14, 1, 'hello'))
# 3.14 1 hello

print('{} {}'.format('one', 'two'))
# one two

 

2. 인덱스값 참조해서 print할 순서 정하기

✏️  기본 문법

print('{} {}'.format(value1, value2))
# {}가 비어있을때는 인덱스 값이 차례대로 0, 1...이 숨겨져 있다
# 인덱스 0값을 가진 {}은 value 1을 받는다

print('{1} {0}'.format(value1, value2))
# {}안에 인덱스값을 지정해줄 수 있다
# 인덱스 0값을 가진 {}은 value 2을 받고 제일 먼저 출력한다

👉  예제

print('{1} {0}'.format('one', 'two'))
# two one
# 첫번째 {}이 인덱스 값이 1이므로 one이 두번째 출력된다

 

3. format() 함수를 사용해 포맷팅하기

3.1  공백 만들기

✏️  기본 문법

# 데이터형을 생략했을때

print('{:>숫자}'.format(value))
# 왼쪽부터 숫자만큼 공백을 만든 후 value를 채워넣기

print('{:숫자}'.format(value))
# 오른쪽부터 숫자만큼 공백을 만든 후 value를 채워넣기

👉  예제

# 왼쪽부터 공백만들기
print('{:>5}'.format('123'))
#   123
# 왼쪽부터 5칸의 공간을 확보, 2칸의 공백, 3칸의 value값을 놓는 곳

# 오른쪽부터 공백만들기
print('{:5}'.format('123'))
# 123
# 오른쪽부터 5칸의 공간을 확보, 2칸의 공백, 3칸의 value값을 놓는 곳

✏️  기본 문법

# 데이터형을 넣어줬을때
# 숫자: 공백의 수, s: string(문자열), d: digit(정수), f: float(실수)

print('{:>숫자s}'.format(value))
# 왼쪽부터 숫자만큼 공백을 만든 후 문자열 value를 채워넣기

print('{:>숫자d}'.format(value))
# 왼쪽부터 숫자만큼 공백을 만든 후 정수 value를 채워넣기

print('{:>숫자f}'.format(value))
# 왼쪽부터 숫자만큼 공백을 만든 후 실수 value를 채워넣기
# 기본값으로 소수점 자리 6자리가 출력

👉  예제

# s: 문자열
print('{:>5s}'.format('123'))
#   123

# d: 정수
print('{:>5d}'.format(123))
#   123

# f: 실수
print('{:>5f}'.format(1.23))
# 1.230000

3.2  빈공백을 대체할 문자 넣기

✏️  기본 문법

print('{:문자>5}'.format(value))
# 공백 대신 문자가 출력된다

👉  예제

print('{:_>5}'.format('123'))
# __123

3.3 중앙정렬하기

✏️  기본문법

print('{:^숫자}'.format(value))
# 숫자만큼 빈공간을 확보한뒤 가운데에 value 값을 넣어준다

👉  예제

print('{:^5}'.format('123'))
#  123 
# 123 왼쪽에 빈공간 하나, 오른쪽에 빈공간 하나와 함께 value값이 출력된다

3.4 글자를 넣을 공간 한정하기 (절삭하기)

✏️  기본문법

print('{:>숫자}'.format(value))
# 왼쪽부터 숫자만큼 공백을 만든 후 value를 채워넣기

print('{:>숫자1.숫자2}'.format(value))
# 왼쪽부터 숫자1만큼 공백을 만든 후 숫자2만큼 value를 채워넣기

👉  예제

print('{:>2}'.format('My Name is Python'))
# My Name is Python
# 오른쪽부터 숫자만큼 공백을 만든 후 value를 채워넣기
# value값이 숫자보다 크므로 공백이 생기지 않는다

# 왼쪽부터 공백만들기
print('{:>10.5}'.format('My Name is Python'))
#      My Na     
# 총 10개의 빈공간을 확보 후 5개의 value 값을 넣어주었다
# value값을 넣을 수 있는 공간은 5칸밖에 없으므로 6칸째부터 해당하는 me is Python은 삭제한 후 출력한다

# 오른쪽부터 공백만들기
print('{:10.5}'.format('My Name is Python'))
# My Na     
# 총 10개의 빈공간을 확보 후 5개의 value 값을 넣어주었다
# value값을 넣을 수 있는 공간은 5칸밖에 없으므로 6칸째부터 해당하는 me is Python은 삭제한 후 출력한다

3.5 소수점자리 제한

✏️  기본문법

print('{:숫자1.숫자2f}'.format(value))
# value값은 실수
# 숫자1만큼 빈공간이 생기고 숫자2만큼 소수점자리가 생긴다

print('{:0숫자1.숫자2f}'.format(value))
# 숫자1만큼 빈공간이 생기고 숫자2만큼 소수점자리가 생긴다
# 정수부분에 0으로 채워진다

👉  예제

print('{:6.2f}'.format(3.14159265359))
#   3.14
# 빈공간 6개, 소수점자리 2개, 오른쪽부터 출력

print('{:06.2f}'.format(3.14159265359))
# 003.14
# 정수 빈부분 0 넣기, 빈공간 6개, 소수점자리 2개, 오른쪽부터 출력

댓글