Python/이론, 기초

[Python] input() VS sys.stdin

파송송 2022. 8. 17. 11:50
728x90

파이썬 입력 받는 방법

input()

https://docs.python.org/3/library/functions.html#input

  • parameter로 prompt messge를 받는다. promt가 있다면 개행 없이 표준 출력함
  • 하나씩 누를 때 마다 버퍼에 저장함
  • 그 다음 입력에서 한 줄을 읽고 문자열로 반환하고 개행 제거 후  EOF를 읽으면 반환함
  1. input()
  2. prompt 문자열 출력
  3. 사용자에게 입력 받음
  4. 문자열로 변환
  5. 줄 바꿈 제거
  6. 값을 반환

sys.stdin

https://docs.python.org/3.10/library/sys.html#sys.stdin

  • 내장 함수가 아닌 file object이다.
  • 모든 대화형 입력(키보드 입력이 아닌 파일 범위의 입력도 포함)에 사용됨(input() 호출 포함) 
  • input()과 같은 방식으로 동작함

sys.stdin.readline()

https://docs.python.org/3/library/readline.html

 

  • prompt message를 파라미터로 받지 않음
  • 개행 문자를 포함하여 한번에 버퍼에 저장한다.

Conclusion

  • input()과 sys.stdin은 같은 방식으로 동작한다
  • 속도는 input() 보다 sys.stdin.readline()이 더 빠르다
    • readline()은 prompt message를 파라미터로 받지 않는다
    • 개행 문자를 포함하여 한번에 읽어와 버퍼에 저장한다
  • 입력이 반복될 수록 readline()이 속도가 빠르다
728x90