[Function] format() 함수 + 형식 문자열

고보·2024년 1월 16일

1 형식 문자열

파이썬의 형식 문자열이란, 문자열에 값을 삽입하거나 형식을 지정하는 방법을 제공하는 문자열 포맷팅 기술이다. 주로 사용하는 방법은 format() 함수나 f-string을 이용하는 방법이다.



2 format()함수

format() 함수는 문자열 포매팅을 수행하는 Python의 내장 함수이다. 문자열 안에 특정 값을 삽입하거나, 형식화된 문자열을 생성할 때 이용한다.

2-1 기본 기능

formattedString = '문자열 {} {}'.format(value1, value2)
여기서 {}의 위치에 format()의 값들을 전달하여 문자열을 생성한다.


2-2 다양한 활용법

2-2-1 위치 인덱스 사용

formattedString = '문자열 {1} {0}'.format(value1, value2)
위와 같이 인덱스로 위치를 적용할 수 있다. 이 경우 value2가 {1}의 위치에, value1이 {0}의 위치로 간다.

2-2-2 키워드 인자 사용

formattedString = '문자열 {name} {age}'.format(age='unknown', name='고보')
이와 같이 키워드로 지정할 수 있다. 이 경우 순서와 상관없이 그 위치로 들어간다.

2-2-3 정렬 및 공백 설정

formattedString = '문자열 {:>10}'.format(value1)
문자열을 전달할 때 정렬, 공백 설정을 조절한다. {:}을 사용하여 설정을 추가할 수 있다.

  • {:>5} 오른쪽 정렬. 옆의 5는 전체 폭을 나타낸다. 즉, 전체가 10으로 보고 오른쪽 끝에 붙여서 글자가 출력된다.
  • {:<5} 왼쪽 정렬
  • {:^5} 가운데 정렬

2-2-4 숫자 양식 지정

formattedString = '문자열 {:.2f}'.format(value1)
정렬 말고도 다양한 방식으로 서식 및 숫자 양식을 지정할 수 있다.

  • {:,} 정수가 천의 자리마다 ,가 찍혀 나온다. 10000 => 10,000으로
  • {:.2f} f는 float로 실수로 표시된다는 뜻이고, 앞의 2는 반올림하여 소수점 둘째자리까지 표기한다.
  • {:%} 백분율로 나온다. .4% 면 소수점 4자리까지.
  • {:+} 부호가 나온다
  • {:-} +부호는 표시하지 않고, -부호만 표시한다
  • {:d} 정수로 나온다. 05d 이렇게 하면 남는 5자리 중 남는 자리 0으로 채운다(zfill(5)와 같은 효과)

2-2-5 진수 지정

  • {:0b}: 이진수
  • {:0o}: 8진수
  • {:0x}: 16진수(소문자)
  • {:0X}: 16진수(대문자)

2-2-6 참고

'{:.2f}'.format(3.14)f'{3.14:.2f}'와 같은 뜻이고, 이는 {}.format((3.14, '.2f'))와도 같다.



3 f-string

문자열 앞에 f나 F를 붙여서 format 없이 간략하게 표현하는 기능이다
f'문자열 {name}''문자열 {}'.format(name)과 같은 기능이다.



4 %를 이용한 옛날 방식

c언어의 printf함수와 유사한 방식으로, % 연산자를 사용해 문자열 안에 값을 삽입한다.
formattedString = '이름: %s, 나이: %d, 키: %.2f' %(name, age, height)
여기서 %에서 지정하는 형식과, 들어갈 파일의 형식이 일치해야 한다.

  • %s 문자열. 숫자를 넣어도 문자열로 변경되서 출력된다.
  • %d 정수. 문자열 넣으면 에러.
  • %.2f 실수. 문자열 넣으면 에러.
  • %5d %-5d 전체폭 5에 오른쪽 정렬 정수, 왼쪽 정렬 정수
profile
일본에서 일하는 게임 기획자. 시시해서 죽어버리지 않게, 재밌고 의미 있는 컨텐츠에 관심 있습니다. 그 도구로 데이터, AI도 찝적댑니다.

0개의 댓글