본문 바로가기

Development/Python

[Python] print

728x90

Python logo

이번엔 Python에서 print의 인자들에 대해서 공부해보겠습니다.

print의 인자들에 대해 알아보기 위해서는 다음과 같이 입력하면 정보를 얻을 수 있습니다.

help(print)

Output:

Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:

# ... 생략

file=sys.stdout 인자

프로그래밍에는 표준 입출력이라는 개념이 있습니다.

짧게 말씀드리면 프로그램에서 특별한 설정없이 입력과 출력을 받을 때 사용하는 경로라고 할 수 있습니다. 

print 함수는 출력 방향을 화면으로 향하는 것이 기본값(표준 출력)으로 되어 있어서 기본적으로는 화면에 내용이 출력됩니다.

하지만 file 인자에 다른 내용을 준다면 파일 등에 내용을 쓰는 것도 가능해집니다. stdout은 이때 standard output(표준 출력)의 줄임말이구요.

혹시 표준 입출력에 대한 내용을 좀더 살펴보고 싶은 분들은 아래 블로그를 읽어보셔도 괜찮습니다.

https://shoark7.github.io/programming/knowledge/what-is-standard-stream

 

표준 스트림, 표준 입출력에 대해 알아보자

표준 입출력과 표준 스트림이 무엇인지 이해해보자!

shoark7.github.io


flush=False 인자

flush는 정말 하드웨어와 관련이 있는 개념입니다. 정확히는 I/O 버퍼와 관련이 있는데요. 우리가 키보드에서 글자를 입력하면 화면에 바로 내용이 출력됩니다.

하지만 키보드와 화면 사이에는 '버퍼(buffer)' 개념 또는 장치가 있어서 버퍼에서 내용을 출력 전에 잠시 보관하게 됩니다. 

flush는 키보드에서 입력되어 버퍼에 저장된 내용을 출력방향(여기서는 화면)으로 바로 밀어넣는다는 의미인데 이 밀어넣는 것은 성능면에서 비용이 크다고 합니다.

그 말은 밀어넣는 작업을 적게 할수록 비용효율적이라는 뜻과 같아집니다.

그래서 이 인자를 곧 배우실 False로 해놓으면 경우에 따라서는 비용절감을 위해 입력된 내용이 바로 화면에 출력되지 않을 수도 있습니다. 이 부분은 정말 하드웨어와 관련이 있어서 일단 읽고 넘어가셔도 충분할 것 같습니다.


위 두 인자는 좀 마니악해서 저도 거의 안 써본 것 같습니다.

그렇기에 혹시 당장 이해가 안 가시더라도 그냥 넘어가셔도 아무런 지장이 없습니다. 필요하시면 두 내용은 따로 질문주시면 더 자세하게 말씀드릴 수 있도록 하겠습니다.

728x90

'Development > Python' 카테고리의 다른 글

[Python] *args와 **kwargs  (0) 2021.02.14
[Python] class - 3) self 이해하기  (0) 2021.01.27
[Python] rfind  (0) 2021.01.21