🕊️

코딩둘기

Programming/Python (4)


Python 실행 구조 완벽 정리: 인터프리터, AST, 바이트코드, PVM까지

데이터 분석가가 알아야 할 Python 실행 구조Python은 데이터 분석과 AI/ML 분야에서 사실상 표준 언어처럼 쓰인다.NumPy, Pandas, scikit-learn, PyTorch, TensorFlow는 물론이고 LangChain, RAG 파이프라인, LLM 애플리케이션 개발까지 Python을 중심으로 돌아가는 경우가 많다. Python이 이렇게 널리 쓰이는 이유는 단순히 “문법이 쉬워서”만은 아니다. Python은 데이터를 다루는 개발 방식과 잘 맞는다. 코드를 짧게 작성할 수 있고, REPL이나 Jupyter Notebook에서 바로 실행해보며 결과를 확인할 수 있다. 분석가는 처음부터 완성된 프로그램을 만드는 사람이 아니라, 데이터를 보면서 가설을 세우고, 코드를 바꾸고, 다시 확인하는 ..

[Python] 파이썬 collections.deque 모듈 사용하기

deque(데크)란? deque는 앞과 뒤에서 데이터를 처리할 수 있는 양방향 자료형이다. 양방향이기 때문에 스택(Stack)처럼 써도 되고 큐(Queue)처럼 써도 된다. collections.deque 모듈은 deque 자료형을 생성하는 모듈이다. from collections import deque deq = deque() 리스트(list)와 비슷한 데크(deque) 데크(deque)의 사용법은 리스트(list)와 거의 흡사하다. collections.deque의 메소드들 중 리스트(list)와 차이를 보이는 메소드 위주로 살펴보겠다. 데크(deque)에 요소추가 : append(item) list.append(item)과 마찬가지로 item을 dequeue의 오른쪽(마지막)에 추가해준다. deq ..

[Python] input()과 sys.stdin.readline()의 차이

[Python] input()과 sys.stdin.readline()의 차이

버퍼(buffer) 표준 입출력 함수를 사용할 때에는 버퍼(buffer)라는 임시 메모리 공간을 사용하게 된다. input() input()은 사용자로부터 한 줄을 입력 받은 뒤 입력된 줄(line)을 문자열로 변환하여 처리한다. 이때 입력 마지막의 줄바꿈(\n)은 포함하지 않는다. 사용자가 키를 하나씩 누르면 이에 대응하는 데이터가 버퍼에 보관된다. 개행문자(\n)가 입력되면 버퍼의 입력이 종료된 것으로 간주한다. input() 호출 시 Prompt 문자열을 화면에 출력해 사용자의 입력을 기다린다. 대량의 입력을 받는 경우 입력을 받고 다시 prompt 창을 띄우고의 과정을 반복하므로 오류 발생 가능성이 증가한다. 더 이상 받을 입력이 없을 때 수행될 경우 EOF(End of File) error를 일..

[Python] Heapq 모듈 사용하기

Heapq 모듈이란? 파이썬 heapq 모듈은 우선순위 큐 알고리즘이라고도 하는 힙(heap) 큐 알고리즘의 구현을 제공한다. 기본적으로 Min-priority-queue 구조를 가지고 있다. heapq는 내장 모듈로 별도의 설치 작업 없이 바로 사용할 수 있다. import heapq 힙(heap)에 요소추가 : heappush(heap, item) heapq 모듈은 리스트를 최소 힙처럼 다룰 수 있도록 하기 때문에, 빈 리스트를 생성한 후 heapq의 함수를 호출할 때마다 리스트를 인자에 넘겨야 한다. 힙(배열)에 요소(item)을 추가 import heapq heap = [] heapq.heappush(heap, 50) heapq.heappush(heap, 10) heapq.heappush(heap..