programming

[Python] input, print vs sys.stdin.readline, sys.stdout.write 차이점

ohyujeong 2022. 10. 8. 17:23

 

sys 모듈

파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈

 

버퍼(buffer)

http://www.tcpschool.com/c/c_io_console

표준 입출력 함수를 사용할 때 버퍼(buffer) 라는 임시 메모리 공간을 사용

 

  prompt 메시지 개행 문자(줄바꿈) 속도 메모리
input 메시지 O 삭제 느림
sys.stdin.readline 메시지 X 포함 빠름 작음

 

input()

  • 값을 하나하나 입력할 때마다 버퍼에 저장함 개행문자 \n 이 입력되면 버퍼 저장 종료
  • 파라미터로 prompt 메시지 받을 수 있어서 입력 받기 전 출력

sys.stdin.readline()

  • 입력 크기를 제한하여 사이즈를 지정하여 입력 받을 수 있음
  • 내장함수인 input과 달리 file object 이므로, 사용자의 입력만을 받는 buffer 를 만들어서 그 buffer에서 읽어들인다.
  • 입력이 종료되면 데이터를 한 번에 읽어와 버퍼에 저장한다.
  •  int 형변환 해주면 개행문자는 사라지고 정수형태만 남음

 

입력 여러번 받을 수록 sys.stdin.readline()이 훨씬 유리하다.

sys.stdin.readline()은 줄 단위로 데이터 입력이 종료 됐을 때, 한 번에 버퍼에 저장하는 반면,

input()은 사용자가 값을 입력할 때마다 버퍼에 저장하기 때문이다.

 

  개행 문자(줄바꿈) 속도
print 포함 느림
sys.stdout.write 없음 빠름

 

print()

  • 개행 문자 포함, 즉 줄바꿈 하여 출력

sys.stdout.write

  • sys.stdout.write 줄바꿈 없이 출력,  + '\n\' 으로 줄바꿈 해줘야 함