
포스팅 목적
알고리즘 문제를 풀던 중 알게된 " sys.stdin.readline() " 에 대해서
알아보고 정리합니다.
sys.stdin.readline() 은 무엇인가?
- 파이썬에서는 흔히 input()을 사용하여 사용자로부터 입력을 받습니다.
- 하지만 여러줄에 걸쳐 입력을 받는 경우 input()을 사용하게 되면 timeout error가 발생할 수 있습니다.
- input()은 경우에 따라 prompt message를 출력하고 입력을 받으며,
입력받은 값의 개행문자를 삭제시키고 반환합니다. - 위와 같은 과정을 거치기 때문에 속도 느립니다.
- 이러한 문제를 해결한 방법이 sys.stdin.readline()입니다.
sys.stdin.readline()의 특징 및 사용방법
- 문자열로 입력을 받습니다
- 개행문자 까지 입력을 받습니다.
한 줄에 정수 하나 입력받기
import sys
num1 = sys.stdin.readline() # 문자열로 받아서 저장
print(num1) # 문자열 타입 + '\n' 로 출력
num2 = sys.stdin.readline() # 문자열로 받아서 저장
print(int(num2) # 정수형 타입으로 변환하면서 개행문자 삭제됨
변환없이 개행문자는 어떻게 제거하는가?
import sys
# 입력값은 동일하게 apple으로 통일
fruit0 = sys.stdin.readline()
fruit1 = sys.stdin.readline().strip()
fruit2 = sys.stdin.readline().strip('\n')
fruit3 = sys.stdin.readline().rstrip('\n')
print('-------')
print(fruit0) # apple\n
print(fruit1) # apple
print(fruit2) # apple
print(fruit3) # apple
- 위의 예시코드와 같이 strip() , strip('\n') , rstrip('\n') 을 사용하여 개행문자를 제거할 수 있습니다.
한 줄에 두개 이상의 정수 받기
import sys
num1, num2 = map(int, sys.stdin.readline().split()) # 100 200 띄어쓰기 구분하여 입력
print(num1, num2)
# 100 200반응형
'Algorithm > Python' 카테고리의 다른 글
| [ Python ] map(int, input().split())에 대한 정리 (0) | 2023.12.14 |
|---|---|
| [ Python ] 파이썬 내장함수 enumerate() (0) | 2023.12.13 |
| [ Python ] leetcode 문제로 연결리스트 개념 정리하기 1 (0) | 2023.12.13 |
| [ Python ] 파이썬 정렬함수 sorted() (0) | 2023.12.12 |