F.R.I.D.A.Y.

print 출력 형식 본문

DEV/python

print 출력 형식

F.R.I.D.A.Y. 2019. 3. 13. 11:17
반응형

 python 3.X의 print는 C언어의 printf와 같이 출력 서식을 정할 수 있습니다.

 


1. 일반 출력

 C언어에서 printf는 일반 단순 문자열만 출력이 가능합니다. python에서도 이와 같이 가능합니다.

 


print('str')
print("str")

 python의 문자열은 홑따옴표와 쌍따옴표에 구분 없이 작성할 수 있습니다. 단, 쌍따옴표로 시작했으면 쌍따옴표로, 홑따옴표로 시작했다면 홑따옴표로 닫아주어야합니다.

 


2. 변수 포함된 출력

2-1. % formatting

 C언어에서도 변수를 출력이 가능한데 python도 비슷하게 작성합니다.

 


wld = "world"
print("hello %s" %(wld))

name = "Pang!"
print("hello %s %s" %(wld, name))

 

 

2-2. f formatting

 javascript의 템플릿 리터럴(백틱)과 유사한 시스템도 사용할 수 있습니다. 이녀석은 3.6 버전에서부터 사용이 가능한 걸로 알고 있어요. 이 버전부터는 f formatting 문자열을 권장한다고 합니다.

 


wld = "world"
name = "Pang!"
print(f"hello {wld} {name}")

 이 때 주의해야할 것은 f formatting 문법을 사용하기 위해서는 print( 이후에 f로 시작해야합니다.

 print( "hello {wld} {name}")으로 작성하면 안돼요!

 print( f"hello {wld} {name}")으로 작성하셔야합니다, f 사용에 주의하세요.

 

2-3. 반점 사용하기

 반점 ( , )을 이용한 작성도 가능합니다.

 


wld = "world"
name = "Pang!"
print("hello", wld, name)

 이렇게 작성하면 hello와 wld 변수값 사이, wld 변수값과 name 변수값 사이에 공백(스페이스)이 존재합니다.

 

2-4. r formatting

 r formatting이라고 해서 모든 이스케이프 문자를 무시하고 그대로 출력하는 포맷도 존재했네요.

print(r"\n\n\n\n hello \n\n world!")

# output
# \n\n\n\n hello \n\n world!

 


3. print 추가 파라미터

 출력하고자 하는 값 뒤에 추가로 파라미터 몇가지가 존재합니다.

 

추가 파라미터 : sep, end, file, flush

 

3-1. sep

 영단어 separate(분리 등)에서 나온 이름입니다. 영단어의 의미처럼 분리된 두 변수 사이를 무엇으로 채울지를 결정하는 파라미터로 기본값은 공백(스페이스) 하나입니다.

 


print("hello","world")
print("hello","world",sep="")

 두 출력은 sep 하나로 각각 다음과 같이 출력됩니다.

 output:

hello world

helloworld

 

 

3-2. end

 말 그대로 end, 끝의 문자를 무엇으로 할지 결정하는 파라미터입니다. 기본값은 '\n'(줄바꿈)입니다.

 

print('hello world')
print('welcome')

print('hello world', end='')
print('welcome')

 위 코드의 출력은 다음과 같습니다.

 output:

hello world

welcome

hello worldwelcome

 

 

3-3. file

 입출력을 어디로 할것인지 결정합니다. 일반적으로는 파이썬 콘솔에 출력됩니다.

 

files = open("./test.txt", "w")
print("hello world!", file=files)
files.close()

 이렇게 작성하면 hello world!라는 문자열이 파이썬 스크립트 파일 위치의 test.txt 파일에 저장됩니다. open 함수에 대해서는 다음에 다룹니다.

 

3-4. flush

 열려있는 파일의 버퍼를 적용할지를 선택합니다. 기본적으로 False로 설정되어있습니다.

 


files = open("./test.txt", "w")
print("hello world!", file=files, flush=True)
files.close()

 위와 같이 작성하면 열려있는 test.txt 파일이 files.close()를 통해 닫지 않더라도 버퍼의 내용이 파일에 적용되어 중간에 프로그램이 죽더라도 flush를 진행한것에 대해서는 보존이됩니다. 입문자가 생각하기에는 약간 어려울 수 있으니 처음에는 굳이 생각하지 않아도 됩니다.

 

 

 

 

 

 

 

728x90
반응형

'DEV > python' 카테고리의 다른 글

리스트, 튜플, 딕셔너리  (0) 2019.01.18
Comments