input()과 sys.stdin.readline()의 차이에 대해 알아보자.



input()

  • 표준 입력에서 한 줄을 읽는 Python의 내장 함수이다.
  • 입력을 문자열로 읽고 후행 개행 문자(‘\n’)을 자동으로 제거한다.
  • 대화형 입력 시나리오세서 사용하기 쉽고 편리하다
  • 아래 예시처럼 parameterprompt message를 받을 수 있다.
1
user_input = input("Enter something: ")



sys.stdin.readline()

sys.stdin은 표준 입력 스트림을 나타내는 객체이고 readline()은 이 스트림에서 한 줄을 읽는 메소드이다.

input()과 달리 sys.stdin.readline()은 후행 개행 문자(‘\n’)를 자동으로 제거하지 않기 때문에 strip() 메서드나 기타 문자열 조작 함수를 사용해 수동으로 처리해야한다.

아래는 readline()을 사용할 때 개행문자가 포함 되는 것을 제거하여 출력해주는 함수들이다.

rstrip()

1
2
3
4
5
# 오른쪽 공백 제거
'abcdefg '.rstrip() # output >>> 'abcdefg'

import sys
a = sys.stdin.readline().rstrip()

strip()

1
2
3
4
5
6
7
8
9
# 양쪽 공백 제거
' abcdefg '.strip() # output >>> 'abcdefg'

'abcdefg '.strip() # output >>> 'abcdefg'

' abcdefg'.strip() # output >>> 'abcdefg'

import sys
a = sys.stdin.readline().strip()

결론

input() 내장 함수는 prompt message를 출력 할 수 있고 개행 문자를 삭제한 값을 리턴한다.

그렇기 때문에 간단한 대화형 입력에 더 일반적으로 사용되는 반면,

sys.stdin.readline()은 성능이 중요한 상황에 선호된다. 가끔 백준에서 시간초과가 났을 때 사용하면 해결되는 경우도 있다고 한다.

Tags:

Categories:

Updated:

Leave a comment