input()
함수 소개
input()
은 Python의 기본 내장 함수로, 사용자로부터 표준 입력(Standard Input)을 받아 문자열 형태로 반환합니다. input()
함수는 사용자가 Enter 키를 누를 때까지 입력을 기다립니다.
- 사용법:
input("프롬프트 메시지")
- 특징:
- 입력받은 모든 데이터를 문자열(str)\로 처리합니다. 숫자를 입력하더라도 문자열로 인식하기 때문에, 산술 연산을 위해서는
int()
나float()
등으로 형 변환이 필요합니다. - 프롬프트 메시지를 인자로 전달하여 사용자에게 입력받을 내용을 안내할 수 있습니다.
- 코딩 테스트 환경에서는 대량의 데이터를 빠르게 읽어와야 할 때가 많으므로,
input()
대신 더 빠른sys.stdin.readline()
을 사용하는 것이 일반적입니다.
- 입력받은 모든 데이터를 문자열(str)\로 처리합니다. 숫자를 입력하더라도 문자열로 인식하기 때문에, 산술 연산을 위해서는
동일 기능/대체 함수:
sys.stdin.readline()
:sys
모듈에 있는 함수로, 한 줄을 읽어와 문자열로 반환합니다.input()
보다 훨씬 빠르기 때문에 경쟁적 프로그래밍(competitive programming)에서 자주 사용됩니다. 사용하려면import sys
가 필요합니다.
itertools.accumulate()
함수 소개
itertools.accumulate()
는 iterable(반복 가능한 객체)의 요소들을 순차적으로 누적하여 결과를 반환하는 함수입니다. 주로 누적 합을 계산하는 데 사용되지만, 다른 함수를 적용하여 누적 곱, 누적 최댓값 등 다양한 연산을 수행할 수 있습니다. itertools
모듈에 포함되어 있어 import
가 필요합니다.
- 사용법:
itertools.accumulate(iterable, func=operator.add)
- 특징:
- 결과를 이터레이터(iterator) 객체로 반환하므로,
list()
등으로 형 변환해야 결과를 확인할 수 있습니다. func
인자를 통해 누적 연산을 커스터마이징할 수 있습니다. 기본값은operator.add
로, 덧셈을 수행합니다.- C로 구현되어 있어 파이썬의
for
루프보다 약간 더 빠를 수 있으며, 코드를 간결하게 만들어 줍니다.
- 결과를 이터레이터(iterator) 객체로 반환하므로,
동일 기능/대체 함수 (직접 구현):
- for 루프를 이용한 누적 계산:
itertools.accumulate()
와 동일한 기능을 직접 구현할 수 있습니다. 이는 개념을 이해하는 데 도움이 됩니다.
위 코드는def my_accumulate(iterable): total = 0 for item in iterable: total += item yield total
itertools.accumulate()
와 유사하게 제너레이터(generator)를 사용하여 누적 합을 반환합니다. 이처럼 직접 구현한 함수는itertools
모듈을 가져오지 않고도 동일한 로직을 사용할 수 있습니다.
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
Celery와 FastAPI - 8 (0) | 2024.03.27 |
---|---|
Celery와 FastAPI - 7 (1) | 2024.03.26 |
Celery와 FastAPI - 6 (1) | 2024.03.24 |
Celery와 FastAPI - 5 (1) | 2024.03.24 |
Celery와 FastAPI - 4 (0) | 2024.03.24 |