< 문자열 포맷팅 (Formatting) 하기 >
포맷팅(Formatting)이란?
: 문자열 안에 특정위치에 특정값을 삽입하는것.
방법 A. 바로 대입하기
A-1. 정수 대입 %d
문자열에서 숫자를 넣고싶은 자리에 %d 를 넣어주고 삽입할 정수를 뒤에 % 다음으로 써넣는다.
A-2. 문자열 대입 %s
위와 마찬가지로 문자열을 넣고 싶은 자리에 %s를 넣어주고 삽입할 문자열을 뒤에 % 다음으로 써넣는다.
* 여기서, %s는 자동으로 % 뒤에 있는 값을 문자열로 바꿔서 어떤 형태든 변환해 넣을 수 있다.
(원래 180을 사용하려면 %d를 사용해야한다.)
A-3. %c (문자 1개 대입)
: character라는 의미로 문자 1개를 대입할 때 사용된다.
* 다양한 문자열 포맷코드
%c | 문자1개(character) |
%d | 정수(Integer) |
%f | 부동소수(floating-point) |
%o | 8진수 |
%x | 16진수 |
%% | Literal % (문자 % 자체) |
* 문자열포매팅과 함께 '%'를 사용하고 싶을때
* 여러개의 값을 포매팅할때
: ( ) 괄호 안에 값을 콤마(,)로 구분하여 여러개의 값을 넣어 줄 수있다.
방법B. 숫자를 활용한 포맷코드 사용
B-1. 정렬과 공백 %10s
: 총 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 그 앞에 공간은 공백으로 남겨둔다. 반대쪽으로 왼쪽정렬을 하려면 %-10s를 해주면 된다.
B-2. 소수점 나타내기
: 소수점 아래 몇번째까지 나타내고싶은지 정해줄 수 있다.
'.'는 소수점 포인트를 뜻하고 그 뒤에 숫자가 소수점 뒤에 나올 숫자의 개수를 의미한다.
/ 또한, '.'앞에 숫자를 붙여주면 문자열의 자릿수도 지정할 수 있다.
방법C. format 함수를 사용한 포매팅
C-1. 바로 대입하기
: format 함수를 이용할 때는 앞에 값을 넣어줄 위치에 { }을 써준다.
- 2개 이상의 값을 넣을 경우 , {0}, {1}과 같은 인덱스가 format 함수의 입력값으로 순서에 맞게 바뀐다.
즉 위의 예시처럼, {0}은 format함수 첫번째 입력값 "국어"가 되고, {1}은 format함수 두번째 입력값 "영어"가 된다.
따라서 값을 넣을 때 인덱스 값에 따라 입력값의 순서도 바뀌게 된다.
C-2. name = value 지정하여 대입하기
: tall = 180, study = "국어" 라는 각각의 이름과 값을 지정해주고, { } 자리에 이름을 넣으면 그에 해당하는 값을 대입할 수 있다.
C-3. 인덱스와 이름을 혼용해서 넣기
: 방법A와 마찬가지로 인덱스를 이용해서 0번째인 180을 대입하고, name = value 형태로의 대입을
혼용하는 것도 가능하다.
C-4. 정렬과 공백
- 왼쪽 정렬 :<- 오른쪽 정렬 :>- 가운데 정렬 :^
: 총 자릿수가 10인 문자열 공간에서 해당 값의 문자열을 정렬하고 나머지 공간은 공백으로 남겨둔다.
* 공백채우기
: 정렬을 할때 공백대신에 지정한 값으로 문자를 채울 수 있다. 채워 넣을 문자 값은 정렬문자 <,>,^ 바로 앞에 넣어야 한다.
- 첫번째 예시는 "^"가운데 정렬하여, "="문자로 공백을 채웠다.
- 두번째 예시는 "<"왼쪽 정렬하여, "!"문자로 공백을 채웠다.
C-5. 소수점 표현하기
: 방법A와 같이 소수점 뒷자리 수를 지정하여 어디까지 표현할 것인지 정할 수 있다.
또한, '.' 앞에 숫자를 지정하여 총 자릿수를 설정할 수 있다.
* { } 문자 표현하기
: format함수를 사용하는데, { }와 같은 중괄호를 포매팅 문자가 아닌 문자 그대로 사용하고 싶을때
{{ }}처럼 2개를 연속해서 사용하면 된다.
방법D. f 문자열 포매팅
* 파이썬 3.6버전 이상부터 사용가능
- tall, study와 같이 변수 값을 만들어서 그 값을 참조할 수 있다.
D-1. f 문자열 포매팅의 표현식 지원
: f 문자열 포매팅은 표현식을 지원해서 다음과 같이 +,- 같은 수식을 함께 사용할 수 있다.
D-2. 딕셔너리 사용하기
D-3. 정렬과 공백
- 첫번째 예시는 "^"가운데 정렬하여, "="문자로 공백을 채웠다.
- 두번째 예시는 "<"왼쪽 정렬하여, "!"문자로 공백을 채웠다.
D-4. 소수점 표현하기
- 첫번째 예시는 소수점 아래 넷째자리까지 표현
- 두번째 예시는 자릿수가 10자리인 상태에서 소수점 아래 넷째자리까지 표현
* { } 문자 표현하기
: f 문자열 포매팅을 사용하는데, { }와 같은 중괄호를 포매팅 문자가 아닌 문자 그대로 사용하고 싶을때
{{ }}처럼 2개를 연속해서 사용하면 된다.
<입출력 포맷 연습하기>
# 빈자리는 빈공간으로, 오른쪽 정렬, 총 10자리 공간을 확보
print("{0: >10}".format(1000))
# 결과: 1000
# 양수일땐 +, 음수일땐 -, 총 10자리 공간을 확보
print("{0:>+10}".format(1000))
print("{0:>+10}".format(1000))
# 결과: +1000
# -1000
# 왼쪽정렬, 빈칸을 *로 채우기, 총 5자리 공간을 확보
print("{0:*<5}".format(10))
# 결과: 10***
# 3자리마다 콤마찍기
print("{0:,}".format(10000000))
# 결과: 10,000,000
# 3자리마다 콤마를 찍고, +-부호 붙이기
print("{0:+,}".format(10000000))
print("{0:+,}".format(-10000000))
# 결과: +10,000,000
# -10,000,000
# 3자리마다 콤마를 찍고, +-부호도 붙이고, 오른쪽 정렬, 빈자리는 *로 채우기, 총 10자리 공간을 확보
print("{0:*>+10,}".format(10000))
print("{0:*>+10,}".format(10000))
# 결과: ***+10,000
# ***-10,000
# 8나누기 7, 소수점 출력
print("{0:f}".format(8/7))
# 결과: 1.142857
# 소수점 특정 자리수까지만 표시 (소수점 3째자리에서 반올림)
print("{0:0.2f}".format(8/7))
print("{0:.2f}".format(8/7))
# 결과: 1.14
# 1.14
'Programming > Python' 카테고리의 다른 글
파이썬 코딩 따라하기(기본) -리스트 (0) | 2020.11.25 |
---|---|
파이썬 코딩 따라하기(기본) - 탈출문자 (0) | 2020.11.16 |
파이썬 코딩 따라하기(기본) - 문자열처리함수 (4) | 2020.11.09 |
파이썬 코딩 따라하기(기본) - random (0) | 2020.11.05 |
파이썬 코딩 따라하기(기본) - 숫자처리함수 (0) | 2020.11.03 |