Python (파이썬) input() 와 sys.stdin.readline() 차이점 및 사용법

< 1 min read

GeeksforGeeks의 Difference between input() and sys.stdin.readline() 를 참고하였습니다.



Python에서 input() 과 sys.stdin.readline() 차이점 및 사용법

파이썬은 다양한 목적으로 사용될 수 있어서 널리 사용되는 인기있는 언어입니다. 어느 프로그래밍 언어이든 사용자로부터 입력값(input)을 받는 것은 매우 중요한데요. 파이썬 또한 입력값을 받는 여러가지 방법들을 제공합니다.

입력값을 받는 다양한 방법들은 서로 어떤점이 다른지 헷갈릴 수 있는데요. 이 글에서는 파이썬에서 입력값을 받는 두 가지 방법 input()sys.stdin.readline() 의 간단한 사용법과 특징 및 차이점을 소개하고자 합니다.



파이썬에서 입력을 받는 방법 (1) - input()

파이썬에서 입력을 받는 방법으로, 아래처럼 input()을 사용할 수 있습니다.

test.py

a = input() # 사용자로부터 값을 받아 a 에 저장
b = int(input()) # 사용자로부터 값을 받아 정수형(숫자)으로 바꾼 후, b 에 저장
c = int(input()) # 사용자로부터 값을 받아 정수형(숫자)으로 바꾼 후, c 에 저장
print(a+"~!!")
print(b+c)

Prompt

$ > python test.py
Hello World # 사용자로부터 입력을 받는다. (즉, a)
2 # b
3 # c
Hello World~!!
5


파이썬에서 input 함수의 작동 방식




파이썬에서 입력을 받는 방법 (2) - sys.stdin.readline()

stdinstandard input (표준 입력) 을 의미하는데요, 데이터로부터 입력값들을 읽어옵니다. stdin 방식은 input()과는 다르게 탈출문자 (escape character) 도 받아옵니다. 즉, 탭을 나타내는 \t 같은 표현들도 있는 그대로 받아옵니다. 또한 sys.stdin.readline() 방식의 경우 입력을 얼만큼 받을지도 결정할 수 있습니다. 아래의 예시 코드를 확인하세요.

test.py

import sys

a = sys.stdin.readline(14) # 사용자로부터 14글자만 입력받아 a 에 할당한다.
print(a)

Prompt

$ > python test.py
test text, Abracadabra  # 이러한 문장을 입력값으로 주어지면,
test text, Abr          # 띄어쓰기 공백을 포함한 14글자만 입력받은 것을 확인 할 수 있다.

sys.stdin.readline() 을 사용하기 위해서는 먼저 sys 의 경우 내장(built-in)함수가 아니므로 사용 전에 위의 예시 코드처럼 import sys를 통해 불러와야 합니다.