Python

파이썬 출력 print 함수 옵션 정리

매우 기초적인 내용이지만 가끔 그리고 꾸준히 헷갈리는 옵션들이 많아 정리 좀 해보려고 한다.

 

우선 일단 아무거나 출력해보자.

a = 1
b = '문자열'
print(a, b)
print(a, b, sep='\t')
print(a, b, sep='***')
print('='*20)
print(a, b, end="^^")
print(a, b)

기본적인 옵션으로 sep와 end가 있다.

 

sep : 변수들 사이에 넣을 구분자

end : 가장 마지막에 나올 문자

 

결과를 보면 알 수 있듯이 sep의 default는 띄어쓰기 1개(공백)이고, end의 default는 엔터 1개(개행)이다.

 

%d, %s, %f를 이용한 출력방식

- 다른 언어(C, Java)와 비슷

print("나는 문자! %s"%('문자문자'))
print("나는 문자! %10s\n"%('문자문자'))

print("나는 정수! %d"%(123456))
print("나는 정수! %10d"%(123456))
print("나는 정수! %010d\n"%(123456))

print("나는 실수! %f"%(123456/5))
print("나는 실수! %10.3f"%(123456/5))
print("나는 실수! %010.3f"%(123456/5))

따옴표("") 안 변수가 들어갈 자리에 데이터 타입에 맞게 %d, %s, %f를 넣어주고 %() 안에 해당 변수를 넣어주면 된다.

또한 %10s 인 경우 10자리로 표현하라는 뜻이고

%010d인 경우 10자리로 표현하되 빈자리는 0으로 채워라 라는 뜻이다.

실수일 경우 %010.3f와 같이 표현할 수 있는데 이는 10자리로 표현하되 빈자리는 0으로 채우고 소수점 3째자리까지 표현하라 라는 뜻이다.

 

format 이용

print("나는 문자! {}".format('문자문자'))
print("나는 정수! {} 나는 실수! {}".format(123456, 123456/5))
print("")
print("{0} 순서도 가능! {1} {2}".format('a', 'b', 'c'))
print("{2} 순서도 가능! {1} {0}".format('a', 'b', 'c'))
print("")
print("{a} 변수 이름으로 접근 가능 {b}".format(a='a', b='b'))

변수가 들어갈 자리를 중괄호({})로 알려주고 따옴표 뒤에 .format() 함수를 이용해 어떤 변수가 들어갈 것인지 알려주면 된다.

괄호 안에 숫자를 넣음으로써 변수 순서를 나타낼 수 있고

괄호 안에 변수이름을 넣음으로써 어떤 변수인지 알려줄 수 있다.

 

그리고 다음과 같이 f 문자열을 통해 표현할 수도 있다.

a, b, c = '문자', 123, 123/5

print(f"나는 문자! {a}")
print(f"나는 정수! {b} 나는 실수! {c}")

맨 처음에 f로 시작해주고 중괄호({}) 안에 그냥 변수 이름을 넣어주면 된다.

개인적으로 이게 가장 직관적이고 편한 것 같다.

 

정렬하기

추가적으로 format 옵션을 이용해 정렬을 할 수 있다.

{:k<10} 왼쪽 정렬, 빈 공간은 k로 채우기, 자리수 10칸
{:k>10} 오른쪽 정렬, 빈 공간은 k로 채우기, 자리수 10칸
{:k^10} 가운데 정렬, 빈 공간은 k로 채우기, 자리수 10칸

 

for i in range(0, 20, 2):
    print("{:<10} 왼쪽 정렬".format(i))

for i in range(0, 20, 2):
    print("{:>10} 오른쪽 정렬".format(i))

for i in range(0, 20, 2):
    print("{:^10} 가운데 정렬".format(i))

for i in range(0, 20, 2):
    print("{:*^10} 가운데 정렬".format(i))

format 함수를 이용하거나 f-string을 이용하거나 편한대로 이용하면 될 것 같다.

for i in range(0, 20, 2):
    print(f"{i:*^10} 가운데 정렬")