Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 개발공부
- Doker
- SQL
- 장고
- 티스토리챌린지
- viewsets
- web
- 도커
- Wil
- CS
- github
- 파이썬
- 연습
- 오블완
- 아티클 스터디
- django
- JWT
- Til
- flask
- 쿠키(cookie)
- 자료구조
- git
- 코딩테스트
- redis
- Python
- docker
- ERD
- 세션(Session)
- nginx
- NoSQL
Archives
- Today
- Total
SteadyDrills
input()과 sys.stdin.readline()의 차이 본문
241127
Python에서 입력받는 함수
input
기본적으로 표준 입력으로부터 한 줄을 읽어 입력한다.
➡️한 줄의 기준은 엔터(개행)이다.
input의 특징
- 자동 문자열 변환
사용자가 입력한 내용을 자동으로 문자열로 변환하여 반환하기 때문에 추가적인 형 변환이 필요 없다. - 개행 문자 제거
입력이 끝나면 자동으로 개행 문자가 제거되어 반환된다. - 사용 편리성
간단하고 직관적인 방법으로 별도의 모듈을 임포트 할 필요가 없다. - 효율성
사용하기 간편하지만, 내부적으로 문자열을 처리하는 데 추가적인 오버헤드가 있다. - 입력 속도
상대적으로 느린 편이다. 특히 많은 양의 입력을 처리할 때는 성능 저하가 발생할 수 있다.
"오버헤드(Overhead)" - 컴퓨터 과학 및 프로그래밍에서 특정 작업이나 프로세스를 수행하는 데 필요한 추가적인 자원이나 시간을 의미
예시코드
# input()을 사용하여 3개의 문자열 입력 받기
inputs = []
for _ in range(3):
user_input = input("문자열을 입력하세요: ")
inputs.append(user_input)
print("입력한 문자열들:")
print(*inputs, sep='\n')
sys.stdin.readline()
줄 끝에 있는 개행 문자(\n)도 포함해서 sys 모듈의 stdin에서 직접 한 줄을 읽어온다.
sys.stdin.readline() 의 특징
- 빠른 입력 처리
대량의 데이터를 처리할 때 더 빠른 성능을 제공한다. 내부적으로 input() 보다 더 낮은 수준에서 입력을 처리하기 때문에 오버헤드가 적다. - 개행 문자 포함:
입력된 줄 끝에 개행 문자(\n)가 포함되어 반환되기 때문에 이를 제거하려면 strip() 메서드를 사용해야 한다. - 모듈 임포트 필요
사용하기 위해 sys 모듈을 임포트해야 하므로, 조금 더 복잡한 설정이 필요하다. - 효율성
입력을 처리하는 데 있어 더 적은 오버헤드를 가지므로, 대량의 데이터를 읽어오는 데 더 효율적이다. - 입력 속도
일반적으로 input()보다 빠르고, 많은 양의 데이터를 처리할 때 유리하다.
예시코드
import sys
# sys.stdin.readline()을 사용하여 3개의 문자열 입력 받기
inputs = []
for _ in range(3):
user_input = sys.stdin.readline().strip() # 개행 문자 제거
inputs.append(user_input)
print("입력한 문자열들:")
print(*inputs, sep='\n')
'PYTHON' 카테고리의 다른 글
파이썬의 'object' class (0) | 2025.01.14 |
---|---|
이스케이프 문자(escape character) (0) | 2024.12.11 |
약수를 구하는 방법 (0) | 2024.11.12 |
[TIL]코딩 테스트 SQL - 주문량이 많은 아이스크림들 조회하기 (0) | 2024.08.05 |
[TIL]코딩 테스트 연습 문제 - 숫자 문자열 (0) | 2024.08.01 |