[Python] 문자열 포매팅하는 방법

Four_Line·2022년 5월 10일
0

Python

목록 보기
1/3

1. % 포매팅

  • 기본 표현
>>> "I slept for %d hours." % 7
'I slept for 7 hours.'
>>> "I slept for %s hours." % 'seven'
'I slept for seven hours.'
>>> time = 7
>>> "I slept for %d hours." % time
'I slept for 7 hours.'
  • 2개 이상의 값 넣기
>>> time = 7
>>> day = "three"
>>> "I slept for %d hours during %s days." % (time, day)
'I slept for 7 hours during three days.'
  • 자릿수 지정하기
    정수부: 0Nd
>>> year, month, day = map(int, input().split('/'))
>>> print('%04d/%02d/%02d' % (year, month, day))
# 입력: 2022/5/10
# 출력: 2022/05/10

실수부: 0.Nf

>>> a = float(input())
>>> print('%0.2f' % a)
# 입력: 1.60123
# 출력: 1.60
  • 정렬과 공백
>>> "%10s" % "hi"
'        hi'
>>> "%-10sjane." % 'hi'
'hi        jane.'

2. format 포매팅

  • 기본 표현
>>> "I eat {0} apples.".format(3)
'I eat 3 apples.'
>>> "I eat {0} apples.".format("five")
'I eat five apples.'
  • 자릿수 지정하기
>>> for a in range(2, 4):
>>> for b in range(1, 10):
>>> print('{0} * {1} = {2:2}'.format(a, b, a*b))
# {2:2}로 씀으로써 자릿수를 맞춰주게 됨.
  • 변수 입력하기
>>> year, month, day = map(int, input().split('/'))
>>> print('{0:04d}/{1:02d}/{2:02d}'.format(year, month, day))
# 입력: 2022/5/10
# 출력: 2022/05/10
  • 매개변수 지정하기
>>> year, month, day = map(int, input().split('/'))
>>> print('{Y:04d}/{M:02d}/{D:02d}'.format(Y=year, M=month, D=day))
# 입력: 2022/5/10
# 출력: 2022/05/10

3. f-string 포매팅

Python3.6 이상부터 사용이 가능하며, 문자열 앞에 접두사 f를 붙이고 중괄호 안에 변수를 넣는 것이 특징임.
자료형의 변환 없이 문자열과 정수를 함께 넣을 수 있다는 것이 큰 장점임.

>>> s = '5월'
>>> print(f'벌써 {s}이다.')
'벌써 5월이다.'
# 잘못 사용하는 경우
>>> month = 5
>>> print('나는' + month + '월이 좋다.')
# print('나는', month, '월이 좋다.')는 됨.
# 제대로 사용하는 경우
>>> month = 5
>>> print(f'나는 {month}월이 좋다.')

0개의 댓글