sys 모듈
파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈
버퍼(buffer)
표준 입출력 함수를 사용할 때 버퍼(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()은 사용자가 값을 입력할 때마다 버퍼에 저장하기 때문이다.
개행 문자(줄바꿈) | 속도 | |
포함 | 느림 | |
sys.stdout.write | 없음 | 빠름 |
print()
- 개행 문자 포함, 즉 줄바꿈 하여 출력
sys.stdout.write
- sys.stdout.write 줄바꿈 없이 출력, + '\n\' 으로 줄바꿈 해줘야 함