pugnet

[Python] 입력받기 - input(), sys.stdin.readline() 본문

Programming/Python

[Python] 입력받기 - input(), sys.stdin.readline()

diverJenny 2022. 11. 21. 23:36

 

파이썬에서 입력을 받을때는 보통 input()을 사용한다.

하지만, 알고리즘 문제를 풀면서 더 빠르게 입력을 받을 수 있는 파이썬의 표준 라이브러리가 있어서 찾아봤다.

 

input() 사용법

num = int(input())

 

input()은 parameter로 prompt message를 받기 때문에 입력 받기 전에 prompt message를 출력해야한다. 또한, rstrip()을 실행해서 입력 받은 문자열의 개행문자를 삭제한 후 반환한다.

반면에 sys.stdin.readline()은 prompt message를 parameter로 받지 않고, 입력 받은 개행문자를 그대로 반환한다.

input()은 위와 같은 작업들을 진행하기때문에 sys.stdin.readline()의 속도가 더 빠르다.

 

sys.stdin.readline() 사용법

import sys
message = sys.stdin.readline() # Hello, World! 입력
print(message) # "Hello, World!\n"

number = int(sys.stdin.readline()) # 1 입력
print(number) # 1

 

아래와 같이 사용할 수도 있다.

from sys import stdin

message = stdin.readline() # Hello, World! 입력
print(message) # "Hello, World!"

number = int(stdin.readline()) # 0 입력
print(number) # 0

 

한줄에 여러개의 입력 받기

from sys import stdin

A, B = map(int, stdin.readline().split()) # split()을 사용해서 공백을 기준으로 문자열을 분리해서 리스트에 담는다.

# 입력받은 정수를 리스트에 담기
C, D = list(int, stdin.readline().split())

 


참고

https://buyandpray.tistory.com/7

https://yeomss.tistory.com/120