문자열 포맷팅
파이썬에서 문자열 포맷팅 하는 방법은 3가지가 있다.
첫 번째로 % 연산자를 사용하는 것.
두 번째는 format 함수를 사용하는것.
마지막으로 f-string 포맷팅을 사용하는 것이다.
💭 % 연산자 사용
서식 지정자(format specifier)를 포함한 문자열과 각 서식 지정자에 대응하는 데이터를 연결한다.
format specifier (공식 문서 참고)
%d 10진수 정수
%f 실수
%s 문자열
%% % 문자 자체
서식 지정자는 여러 개를 한 번에 사용할 수 있다.
타입에 맞지 않는 값을 넣는 경우 TypeError가 발생한다.
자릿수 지정
%f는 기본적으로 소수점 이하 6자리까지 출력한다.
% 와 f 사이에 숫자 값을 넣어 몇 자리로 출력할지 지정할 수 있다.
만약 정수부에 원래 출력하려는 값의 자릿수보다 더 큰 자릿수 값이 들어왔다면 공백을 출력한다.
공백 넣기
% 와 d 사이에 숫자 값을 넣는 경우 앞뒤로 공백을 넣을 수 있다.
양수 값을 넣으면 숫자 왼쪽에 공백이 생기고, 음수 값을 넣으면 숫자 오른쪽에 공백이 생긴다.
이와 같이 자릿수를 명시하여 띄어쓰기나 탭을 직접 입력할 필요 없이 정렬할 수 있다.
💭 format() 함수 사용
문자열 내에 중괄호를 사용한다.
"{}".format(넣을 내용) 형식이다.
In [1]에서는 {} 안에 아무런 값을 넣지 않았다. 따라서 format 함수 인자 값이 순서대로 들어간다.
In [2]와 In [3]에서는 {} 안에 name과 age라는 format name을 지정하였다.
그러므로 format 함수 내에 들어가는 인자들은 모두 format name에 대입하여야 한다.
format name이 지정되는 경우에는 In [1]의 경우와 달리 순서가 상관없다.
만약 format name에 대입하지 않고 그냥 값을 넣는 경우 KeyError가 발생한다.
format 함수를 사용할 때도 % 연산자를 사용할 때와 마찬가지로 왼쪽·오른쪽 공백을 지정할 수 있고,
실수인 경우 정수부와 소수부의 자릿수를 정할 수 있다.
자릿수 지정
format 함수 사용 시 자릿수 지정을 할 때에는 : 를 앞에 써주어야 한다.
: 다음에 + 를 붙이면 format 함수에 들어오는 값의 부호를 표시할 수 있다.
음수인 경우 기본으로 -를 출력해주지만, 양수일 때 +를 출력하고 싶을 때 사용하기 좋다.
대신 정수(%d)와 실수(%f)만 가능하고 문자열(%s)은 불가능하다.
%s에 +를 붙이는 경우 ValueError가 발생한다.
공백 넣기
format 함수에서 공백을 넣을 때는 <, >, ^ 를 사용하여 공백 개수를 정할 수 있다.
< 를 사용하는 경우 포맷팅 문자열 오른쪽에 공백이 출력되고,
> 를 사용하면 왼쪽에 공백이 출력된다.
^ 를 사용하면 포맷팅 된 문자열이 중간에 위치하도록 왼쪽, 오른쪽 양옆에 공백이 출력된다.
💭 f-string 포맷팅
f-string 포맷팅은 파이썬 3.6 버전 이상에서만 사용할 수 있다.
포맷팅을 사용할 문자열 앞에 f를 붙이면 f-string 포맷팅을 사용한다는 의미이다.
f-string 포맷팅에서는 format name을 무조건 지정해주어야 한다.
In [16]에서는 format 함수를 사용했고 In [17]에서는 f-string 포맷팅을 사용했다.
format 함수를 사용하는 것보다 간결해진 것을 볼 수 있다.
실수의 자릿수도 물론 지정할 수 있는데, format name 뒤에 : 를 붙여서 지정하면 된다.
자릿수 지정, 공백 넣기 등의 방법은 : 를 붙이는 것으로, format 함수를 사용할 때와 같다.
format name을 지정하지 않은 경우 SyntaxError가 발생한다.
💭 실습해보기
정보올림피아드 Language_Coder 105 : 출력 - 형성평가5