[파이썬 입문] 2. 자료형 – 4) 기본 출력 print 함수, format 함수, f문자열

기본 출력 print

기본 출력 함수 print는 이미 사용해 보았습니다.

이번에는 포멧에 맞게 출력하는 방법을 알아 볼 거예요.

print 함수를 사용할 때 값이나 표현을 입력 인자로 전달하여 출력했어요.

[In]
print(12)
a = "hello"
print(a)
print(12, a)
[Out]
12
hello
12 hello

format 출력

먼저 정수를 출력할 때 10진수, 8진수, 16진수로 출력할 수 있어요.

format(정수,’d’)일 때는 10진수

format(정수,’o’)일 때는 8진수

format(정수,’x’)일 때는 16진수

[In]
num = 256
print("===num===")
print("10진수:",format(num,'d'))
print("8진수:",format(num,'o'))
print("16진수:",format(num,'x'))
[Out]
===num===
10진수: 256
8진수: 400
16진수: 100

문자열의 멤버 메서드(문자열 표현 뒤에 .을 찍고 접근하는 기능) format을 사용할 수도 있어요.

이 때는 format에 전달하는 인자의 인덱스를 문자열 표현에 포함시킬 수 있어요.

다음 코드는 문자열의 멤버 메서드 format 을 사용한 예입니다. Look & Feel 할 수 있을 거예요.

[In]
print("10진수:{0:d}".format(num))
print("8진수:{0:o}".format(num))
print("16진수:{0:x}".format(num))
[Out]
===num===
10진수: 256
8진수: 400
16진수: 100

이처럼 문자열의 멤버 메서드 format을 사용할 때는 여러 개의 인자를 전달하고 문자열에 {인덱스}로 출력 포멧을 지정할 수 있어요.

a=5
b=3
print("a:{0} b:{1}".format(a,b))
print("{0}+{1}={1}+{0}={2}".format(a,b,a+b))
[Out]
===num===
a:5 b:3
5+3=3+5=8

원하는 폭을 지정하고 싶을 때는 다음처럼 포멧을 표현할 수 있어요.

print("TC1:={0:s}=".format("cat"))
print("TC2:={0:6s}=".format("cat"))
[Out]
===num===
TC1:=cat=
TC2:=cat   =

정수 출력에서 폭을 지정하고 빈 자리를 0을 채우고 싶을 때는 폭 지정 앞에 숫자 0을 표현합니다.

print("={0:6d}=".format(123))
print("={0:06d}=".format(123))
[Out]
=   123=
=000123=

출력할 소수점 이하 자리수를 지정할 때는 .자리수f 표현으로 지정합니다.

print("{0:f}".format(2/3))
print("{0:.2f}".format(2/3))
[Out]
0.666667
0.67

f문자열

보다 직관적으로 포멧을 지정할 수 있게 f”문자열 출력 포멧” 형태로 표현할 수도 있어요.

a=123
b=2/3
print(f"a:{a} b:{b}")
print(f"a:{a:012d} b:{b:.2f}")
[Out]
a:123 b:0.6666666666666666
a:000000000123 b:0.67