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 totalitertools.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 |