format() 예제 - 소수점 2자리까지 표현.
txt = "{price:.2f} 달러."
print(txt.format(price = 43) )
결과보기: 43.00 달러.
format() 정의
문자열 안 지정 값을 포맷 후, 해당 Placeholder(자료표시자)에 넣음 .
※ Placeholder는 중괄호 {} 사용해 표현. (※ 아래 설명서 참고)
※ format() 메서드는 형식 변경된 문자열을 반환.
cf.
format_map() 메서드
format() 구문
string .format(value1, value2... )
[매개변수]
value1, value2...
필수. 형식 변경되어 자리표시자에 들어가야 할 값들.
※ value는 제거할 요소의 위치를 지정하는 숫자일 수 있음.
※ value 유형 종류.
① 쉼표로 구분된 값 목록
② key = value 목록
③ 위 두 방법의 조합.
※ value는 모든 데이터 유형 가능.
Placeholder (자리표시자 )
자리표시자는 {} 안에 '이름' , '숫자' , '빈 공백' 넣어 표시.
(예) {name}, {0}, {}
[예제]
hz1 = "{site}, {host} ".format(site = "홈짱닷컴", host = "Homzzang.com")
hz2 = "{0}, {1} ".format("홈짱닷컴","Homzzang.com")
hz3 = "{}, {} ".format("홈짱닷컴","Homzzang.com")
print(hz1) # 홈짱닷컴, Homzzang.com
print(hz2) # 홈짱닷컴, Homzzang.com
print(hz3) # 홈짱닷컴, Homzzang.com
format() 타입
:< : 왼쪽 정렬 (사용 가능한 공간 내)
# 값 자리를 8자리 설정 후, 왼쪽 정렬.
hz = "홈짱닷컴 Homzzang.com {:<8} 오픈."
print(hz.format(2012) )
결과값: 홈짱닷컴 Homzzang.com 2012 오픈.
:> : 오른쪽 정렬 (사용 가능한 공간 내)
# 값 자리를 8자리 설정 후, 오른쪽 정렬.
hz = "홈짱닷컴 Homzzang.com {:>8} 오픈."
print(hz.format(2012))
결과값: 홈짱닷컴 Homzzang.com 2012 오픈.
:^ : 가운데 정렬 (사용 가능한 공간 내).
# 값 자리를 8자리 설정 후, 가운데 정렬.
hz = "홈짱닷컴 Homzzang.com {:^8} 오픈."
print(hz.format(2012) )
결과값: 홈짱닷컴 Homzzang.com 2012 오픈.
:= : 기호를 가장 왼쪽에 배치.
# 값 자리를 8자리 설정 후, 부호를 가장 왼쪽에 배치.
txt = "현재 온도: {:=8} 도"
print(txt.format(-5) )
결과값: 현재 온도: - 5 도.
:+ : 양수에 + 기호 추가.
txt = "가능값: {:+} ~ {:+} "
print(txt.format(-3, 4) )
결과값: 가능값: -3 ~ +4
:- : 음수만 - 기호 표시. (※ 양수에 + 기호 사용 X)
txt = "가능값: {:-} ~ {:-} "
print(txt.format(-3, 4) )
결과값: 가능값: -3 ~ 4
: : 양수는 앞에 공백 삽입. (※ 음수는 - 기호 삽입.)
txt = "가능값: {: } ~ {: } "
print(txt.format(-3, 4) )
결과값: 가능값: -3 ~ 4
:, : 쉼표로 천 단위 구분. ★
txt = "수입: {:,} 원"
print(txt.format(1000000) )
결과값: 수입: 1,000,000 원
: _ : 천 단위 구분 기호로 밑줄 사용.
txt = "수입: {:_} 원"
print(txt.format(1000000) )
결과값: 수입: 1_000_000 원
:b : 바이너리 형식
txt = "십진수 {0} = 이진수 {0:b} "
print(txt.format(5) )
결과값: 십진수 5 = 이진수 101
:c : 값을 해당 유니코드 문자로 변환.
예제 준비 중.
:d : 10 진수 형식
# 이진수 5를 십진수로 변환.
txt = "이진수 101 = 십진수 {:d} "
print(txt.format(0b101) )
결과값: 이진수 101 = 십진수 5
:e : 소문자 e 사용 과학적 표기법.
txt = "5 지수표기법: {:e}"
print(txt.format(5))
결과값: 5 과학표기법: 5.000000e+00
:E : 대문자 E 사용 과학적 표기법.
txt = "숫자 5의 과학표기법: {:E} "
print(txt.format(5) )
결과값: 숫자 5의 과학표기법: 5.000000E+00
:f : 소수점 표시. (소문자 inf, nan 사용.) ※ 기본: 6자리
# 소수점 2자리
txt = "{:.2f }"
print(txt.format(34) ) # 34.00
# 소수점 6자리 (기본값 사용)
txt = "{:f} "
print(txt.format(34) ) # 34.000000
# 소수점 포함 전체 10자리인데, 그 중 소수점은 3자리 차지.
n = 12.34
print("{:10.3f }".format(n) ) # 12.340
# 소문자 inf (무한대 = 1/0)
x = float('inf')
txt = "{:f} "
print(txt.format(x) ) # inf
:F : 소수점 표시. (대문자 INF, NAN 사용.) ※ 기본: 6자리
# 소수점 2자리
txt = "{:.2F }"
print(txt.format(34) ) # 34.00
# 소수점 6자리 (기본값 사용)
txt = "{:F} "
print(txt.format(34) ) # 34.000000
# 소수점 포함 전체 10자리인데, 그 중 소수점은 3자리 차지.
n = 12.34
print("{:10.3F }".format(n) ) # 12.340
# 대문자 INF (무한대 = 1/0)
x = float('inf')
txt = "{:F} "
print(txt.format(x) ) # INF
:g : 일반 형식
예제 준비 중.
:G : 일반 형식 (과학적 표기법에 대문자 E 사용)
예제 준비 중.
:o : 8 진수 형식
txt = "십진수 {0} = 팔진수 {0:o} "
print(txt.format(10) )
결과값: 십진수 10 = 팔진수 12
:x : 16 진수 형식 (소문자 사용)
txt = "10진수 {0} = 16진수 {0:x} "
print(txt.format(255) )
결과값: 10진수 255 = 16진수 ff
:X : 16 진수 형식 (대문자 사용)
txt = "10진수 {0} = 16진수 {0:X} "
print(txt.format(255) )
결과값: 10진수 255 = 16진수 FF
:n : 숫자 형식
예제 준비 중.
:% : 백분율 형식
# 소수점 있는 백분율 (기본: 6자리)
txt = "{:%} "
print(txt.format(0.25) ) # 25.000000%
# 소수점 없는 백분율
txt = "{:.0%} "
print(txt.format(0.25) ) # 25%
format() 예제 - 문자열 포맷
a = 3
b = 4
print("{} * {} = {}".format(a,b,a*b) )
결과값: 3 * 4 = 12
[예제] 소수점 자릿수 맞추기.
a = 3
b = 4
print("{} * {:.3f } = {:.3f }".format(a,b,a*b) )
결과값: 3 * 4.000 = 12.000
[예제] 소수점 포함 전체 10자리인데, 그 중 소수점은 3자리 차지.
a = 12.34
print("{:10.3f }".format(a) )
결과값: 12.340
PS. 주의
전체자릿수 숫자는 지정 소수점 자릿수로 숫자를 다 표현할 수 있을 때만 유효.
즉,
위 예제 경우. (정수 2자리 + 소수점 + 소수점 이하 3자리) 표시 위해 최소 6자리 공간이 필요한데, 6미만의 숫자를 전체 자릿수로 지정할 경우 이 숫자는 무시되고 소수점 이하 자릿수 지정만 유효하게 됨. 그 결과 결과값은 12.340 됨.
(예)
a = 12.34
print("{:5.3f}".format(a)) # 12.340
주소 복사
랜덤 이동