프로그래밍 문법 공부/파이썬

input()과 sys.stdin.readline() 차이

태은코딩 2024. 3. 24. 15:59

https://fubabaz.tistory.com/38

 

[Python] Input() vs sys.stdin.readline() 입력 함수 차이 (feat. python version)

이번 포스트에는 사용자 입력을 처리하기 위한 내장 함수에 대해서 비교하여 정리하겠습니다. 1. Python 2.x 1) raw_input() 입력 값을 무조건 문자열로 받음 2) input() 입력으로 들어온 값을 evaluate 해서

fubabaz.tistory.com

이 사이트를 참고했습니다.

 

1. input()

  • input() 내장 함수는 parameter로 prompt message를 받을 수 있음
    -> 입력받기 전 prompt message를 출력 (느린속도, 부하의 원인)
  • input() 내장 함수는 입력받은 값의 개행 문자를 삭제시켜서 리턴
    -> 입력받은 문자열에 rstrip() 함수를 적용시켜서 리턴, 정확히는 개행문자만 없애서 줄바꿈없이 출력 (느린속도, 부하의 원인)
# 입력하세요: 라는 prompt 메세지를 받는 input()
a =input("입력하세요: ")
print(a)

 

a=input()
print(a)
b=input()
print(b)
c=input()
print(c)

1
1
2
2
3
3

 

2. sys.stdin.readline()

일단 특징은 import sys를 해야한다. 

  • sys.stdin.readline()은 prompt message를 인수로 받지 않음
  • 한줄 단위로 입력받기 때문에, 개행 문자를 포함한 값을 리턴
    -> 줄바꿈(new line)이 적용되고 다음줄부터 출력
    -> rstrip()을 붙여줘야 개행을 제거한 채로 출력
  • -> sys.stdin.readline().rstrip()을 사용하면 오른쪽 공백 제거하고 출력된다. 
import sys
# 잘못된 예
b = sys.stdin.readline("입력하세요: ") # 에러 출력

# 올바른 예
b = sys.stdin.readline
print("입력하세요:",b())

 

import sys
a=sys.stdin.readline()
print(a)
b=sys.stdin.readline()
print(b)
c=sys.stdin.readline()
print(c)
 
1
1

2
2

3
3