문자열 포맷팅이란 문자열 안의 특정한 값을 바꿔야 할 경우가 있는데 이것을 가능하게 해 준다. 즉, 쉽게 말해 문자열 포맷팅은 문자열 안에 어떤 값을 삽입하는 방법이다.
이는 크게 3가지 방법이 있는데 아래와 같다.
- % 포맷팅
- format 함수
- f 문자열 포맷팅
1. % 포맷팅
% 문자를 이용해 원하는 형식으로 포맷팅할 수 있다. 이는 '% 자료형 종류' % 값 의 형식으로 사용된다.
(1) 숫자 바로 대입
>>> print('I ate %d apples' % 3)
'I ate 3 apples'
이는 숫자를 바로 대입하는 방법이다. 이때, %d를 문자열 포맷 코드라고 부른다.
(2) 문자열 바로 대입
>>> print('I ate %s apples.' % 'five')
'I ate five apples'
이는 문자열을 바로 대입하는 방법이다. 위의 예제와 비교해보면 숫자를 넣기 위해서는 %d를, 문자열을 넣기 위해서는 %s를 써야 한다.
(3) 변수 대입
>>> number = 3
>>> print('I ate %d apples.' % number)
'I ate 3 apples'
이는 변수를 정의하여 대입하는 방법이다.
(4) 2개 이상의 값 대입
>>> number = 10
>>> day = 'three'
>>> print('I ate %d apples. so I was sick for %s days.' % (number, day))
'I ate 10 apples. so I was sick for three days'
이는 2개 이상의 값을 넣는 방법이다. 이처럼 2개 이상의 값을 넣으려면 마지막 % 다음 괄호 안에 콤마(,)로 구분하여 각각의 값을 넣어주면 된다.
(5) 소수점 표현
>>> print('%0.4f' % 3.141592)
3.1415
이는 % 포맷팅을 이용하여 소수점을 표현하는 방법이다. 이는 소수점 아래 4자리까지 표현한다는 의미이다.
문자열 포맷 코드
자주 사용하는 문자열 포맷 코드는 아래와 같다.
2. format 함수
문자열의 format 함수를 사용하면 조금 더 발전된 스타일로 문자열 포맷을 지정할 수 있다.
(1) 숫자 바로 대입
>>> print('I eat {0} apples.'.format(3))
'I eat 3 apples.'
이는 숫자를 바로 대입하는 방법이다. {0}이라는 부분이 숫자 3으로 바뀐 것을 확인할 수 있다.
(2) 문자열 바로 대입
>>> print('I eat {0} apples.'.format('five'))
'I eat five apples.'
이는 문자열을 바로 대입하는 방법이다. {0}이라는 부분이 문자열 'five'로 바뀐 것을 확인할 수 있다.
(3) 변수 대입
>>> number = 3
>>> print('I eat {0} apples.'.format(number))
'I eat 3 apples.'
이는 변수를 정의하고 이를 대입하는 방법이다.
(4) 2개 이상의 값 넣기
>>> number = 10
>>> day = 'three'
>>> print('I ate {0} apples. so I was sick for {1} days'.format(number, day))
'I ate 10 apples. so I was sick for three days.'
2개 이상의 값을 넣을 경우 {0}, {1}, ... 과 같은 인덱스 항목이 format 함수의 입력값으로 순서에 맞게 바뀐다.
(5) 매개변수를 지정하여 입력
>>> print('I ate {number} apples. so I was sick for {day} days.'.format(number = 10, day = 3))
'I ate 10 apples. so I was sick for 3 days.'
이와 같이 매개변수를 지정하여 입력하면 입력하는 값의 순서를 내 마음대로 바꿀 수 있다는 장점이 있다.
(6) 소수점 표현하기
>>> y = 3.141592
>>> print('{0:0.4f}'.format(y))
'3.1415'
format 함수를 사용해 소수점 아래 4자리까지만 표현하는 방법이며, 처음 0:은 0번째 인덱스를 의미한다. 만약 1번째 인덱스를 추가하고 싶다면 1:으로 나타내면 된다.
3. f 문자열 포맷팅
파이썬 3.6 버전부터는 f 문자열 포맷팅 기능을 사용할 수 있다. 이는 문자열 앞에 접두사 f를 붙이고, 중괄호 안에 변수를 넣어주면 된다.
>>> name = '홍길동'
>>> age = 30
>>> print(f'나의 이름은 {name}입니다. 나이는 {age}입니다.')
'나의 이름은 홍길동입니다. 나이는 30입니다.'
소수점 표현은 아래와 같이 할 수 있다.
>>> y = 3.141592
>>> print(f'{y:0.4f}')
'3.1415'
이때, 앞에서 format 함수에서 소수점 표현할 때 인덱스 번호를 0: , 1:로 나타낸 것과 같이 f 문자열 포맷팅에서는 변수 이름 y:를 나타내어 주면 된다.
'Python > Syntax' 카테고리의 다른 글
[Python] collections 모듈의 defaultdict() (0) | 2022.04.28 |
---|---|
[Python] 비트 연산자 (0) | 2022.04.21 |