Home Science Coding Design Etc. AboutMe

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

Aug. 26, 2021   /   2 mins 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 함수의 작동 방식

  • 우선 input() 함수가 사용되면 사용자로부터 입력값을 받을때까지 대기합니다.
  • 이때 사용자에게 입력 값을 입력하도록 요청하는 텍스트나 메시지 표시는 선택사항입니다. (예를 들어, a = input("값을 입력하세요."))
  • 사용자가 입력을 완료하면, 파이썬은 입력값을 string 형식으로 바꿉니다. 이때 사용자가 정수형 값을 입력하더라도 파이썬 input()은 입력값을 문자형으로 받으므로, 필요하다면 위의 예시 코드처럼 int() 같은 typecasting을 이용하여 정수형으로 바꿔야 합니다.



파이썬에서 입력을 받는 방법 (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를 통해 불러와야 합니다.