파이썬의 문자열을 포맷하는 방법에는 3가지가 있다.
- %string
- Format 함수
- Fstring
%string
sample = "str : %s, int : %d, float : %.3f"%("123",456,78.9)
%string 방식은 문자열 뒤에 %를 붙인 뒤, 문자열 내부에 포맷으로 들어갈 값을 넣어주면 된다.
만약, 여러 개의 값을 넣고자 하면 tuple의 형태로 감싸주면 된다.
Format 함수
sample = "first {}, second {}, third {}, etc {}".format(123,"4","abc",12.22)
sample_2 = "{0} {1} {2}".format("this","is","sample")
Format
format 함수는 문자열의 {} 기호를 format 내부의 인자들로 교체한다.
이때 {}기호를 안 쓰면 format의 인자 순서대로 들어가고, {}안에 index를 써주면 해당 index에 맞는 인자로 교체된다.
주의할 점으로는 인덱스가 없는 {}와 인덱스가 있는 {}를 혼용할 수 없다.
Fstring
name = 'fString'
sample = f'this is {name}.'
Fstring은 문자열 앞에 f를 붙여서 선언하고 {}안에 들어갈 변수를 적어준다.
문자열 뒤에 포맷팅할 변수를 나열하지 않고 문자열 내에 직접 입력한다는 점에서 다른 두 방법보다 직관적이다.
Format함수와 Fstring은 C의 포맷팅이나 %string과는 다른 방식의 포맷을 사용한다.
기본적으로 변수명 옆에 : 를 붙여 시작하며, 규칙들은 다음과 같다.
{var:<10} : 왼쪽으로 정렬
{var:>10} : 오른쪽으로 정렬
{var:^10} : 가운데 정렬
{var:0>10} : 오른쪽으로 정렬하고 빈 칸은 0을 채움
{float:.2f} : 실수형을 소수점 2째자리까지만 출력
이를 응용하여 hour, minute, second가 주어질 때, 시간 형식으로 문자열을 포맷팅해보자.
hour = 15
minute = 5
second = 7
time_stamp = f'{hour:0>2}:{minute:0>2}:{second:0>2}'
출력 결과로 15:05:07로 나오는 것을 볼 수 있다.
'파이썬' 카테고리의 다른 글
Fancy indexing과 응용 (0) | 2023.03.12 |
---|