파이썬의 형식 문자열이란, 문자열에 값을 삽입하거나 형식을 지정하는 방법을 제공하는 문자열 포맷팅 기술이다. 주로 사용하는 방법은 format() 함수나 f-string을 이용하는 방법이다.
format() 함수는 문자열 포매팅을 수행하는 Python의 내장 함수이다. 문자열 안에 특정 값을 삽입하거나, 형식화된 문자열을 생성할 때 이용한다.
formattedString = '문자열 {} {}'.format(value1, value2)
여기서 {}의 위치에 format()의 값들을 전달하여 문자열을 생성한다.
formattedString = '문자열 {1} {0}'.format(value1, value2)
위와 같이 인덱스로 위치를 적용할 수 있다. 이 경우 value2가 {1}의 위치에, value1이 {0}의 위치로 간다.
formattedString = '문자열 {name} {age}'.format(age='unknown', name='고보')
이와 같이 키워드로 지정할 수 있다. 이 경우 순서와 상관없이 그 위치로 들어간다.
formattedString = '문자열 {:>10}'.format(value1)
문자열을 전달할 때 정렬, 공백 설정을 조절한다. {:}을 사용하여 설정을 추가할 수 있다.
{:>5} 오른쪽 정렬. 옆의 5는 전체 폭을 나타낸다. 즉, 전체가 10으로 보고 오른쪽 끝에 붙여서 글자가 출력된다. {:<5} 왼쪽 정렬{:^5} 가운데 정렬formattedString = '문자열 {:.2f}'.format(value1)
정렬 말고도 다양한 방식으로 서식 및 숫자 양식을 지정할 수 있다.
{:,} 정수가 천의 자리마다 ,가 찍혀 나온다. 10000 => 10,000으로{:.2f} f는 float로 실수로 표시된다는 뜻이고, 앞의 2는 반올림하여 소수점 둘째자리까지 표기한다. {:%} 백분율로 나온다. .4% 면 소수점 4자리까지. {:+} 부호가 나온다{:-} +부호는 표시하지 않고, -부호만 표시한다{:d} 정수로 나온다. 05d 이렇게 하면 남는 5자리 중 남는 자리 0으로 채운다(zfill(5)와 같은 효과){:0b}: 이진수{:0o}: 8진수{:0x}: 16진수(소문자){:0X}: 16진수(대문자)'{:.2f}'.format(3.14)는 f'{3.14:.2f}'와 같은 뜻이고, 이는 {}.format((3.14, '.2f'))와도 같다.
문자열 앞에 f나 F를 붙여서 format 없이 간략하게 표현하는 기능이다
f'문자열 {name}'은 '문자열 {}'.format(name)과 같은 기능이다.
c언어의 printf함수와 유사한 방식으로, % 연산자를 사용해 문자열 안에 값을 삽입한다.
formattedString = '이름: %s, 나이: %d, 키: %.2f' %(name, age, height)
여기서 %에서 지정하는 형식과, 들어갈 파일의 형식이 일치해야 한다.
%s 문자열. 숫자를 넣어도 문자열로 변경되서 출력된다. %d 정수. 문자열 넣으면 에러. %.2f 실수. 문자열 넣으면 에러. %5d %-5d 전체폭 5에 오른쪽 정렬 정수, 왼쪽 정렬 정수