파이썬

[Python]문자열 포맷

이불속곰팡이 2023. 3. 9. 20:18

파이썬의 문자열을 포맷하는 방법에는 3가지가 있다.

  1. %string
  2. Format 함수
  3. 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로 나오는 것을 볼 수 있다.