본문 바로가기

파이썬(python)

파이썬 입력 받기 - sys.stdin.readline vs input

Python 3.x

Python 3.x로 넘어옴에 따라서 raw_input() 함수는 사라지고, input()이 raw_input()의 역할을 하게 된다. 따라서 Python 3.x에서 input()도 결과적으로 입력 값을 문자열로 받게 된다. 그리고 Python 3.x로 넘어오면서 모든 변수가 객체(object)로 처리됨에 따라서 결과 값도 type에서 class로 바뀌게 되었다.

 

input 과 sys.stdin.readline 의 차이점

일단 sys.stdin.readline()과 input()은 같은 역할을 하지 않는다.

 

input() 내장 함수는 parameter로 prompt message를 받을 수 있다. 따라서 입력받기 전 prompt message를 출력해야 한다. 물론 prompt message가 없는 경우도 있지만, 이 경우도 약간의 부하로 작용할 수 있다. 하지만, sys.stdin.readline()은 prompt message를 인수로 받지 않는다.

 

또한, input() 내장 함수는 입력받은 값의 개행 문자를 삭제시켜서 리턴한다. 즉 입력받은 문자열에 rstrip() 함수를 적용시켜서 리턴한다. 반면에 sys.stdin.readline()은 개행 문자를 포함한 값을 리턴한다. 이 때문에 조금 귀찮은 점이 있기도 하다.