전체 글 (112) 썸네일형 리스트형 인터페이스 프로토콜(Protocol)파이썬에서 프로토콜(Protocol)은 인터페이스와 비슷한 개념으로, 특정 역할을 완수하기 위한 메서드 집합을 정의한다. 프로토콜은 타입 힌팅(type hinting)과 정적 타입 검사(static type checking)를 지원하는 도구로 사용될 수 있다. 파이썬의 typing 모듈에서 제공하는 Protocol 클래스를 사용하여 프로토콜을 정의할 수 있다.프로토콜의 개념프로토콜은 다음과 같은 특징을 가진다:명시적 구현 강제 없음: 클래스가 특정 프로토콜을 명시적으로 구현하지 않더라도 해당 프로토콜에 정의된 메서드를 모두 구현하고 있다면 그 프로토콜을 따르는 것으로 간주된다.유연성: 다양한 클래스들이 동일한 프로토콜을 따를 수 있어 코드의 유연성이 증가한다.타입 힌팅 지원: 정.. 원형 큐(Circular Queue) 원형 큐(Circular Queue)는 일반적인 큐의 한계를 극복하기 위해 설계된 자료 구조이다. 일반적인 큐는 배열을 사용하여 구현할 때, 요소를 추가하거나 제거할 때마다 배열의 앞쪽 요소들을 이동시켜야 하는 문제가 발생할 수 있다. 이러한 문제를 해결하기 위해 원형 큐는 배열의 처음과 끝이 연결된 형태를 사용하여, 공간을 효율적으로 사용할 수 있다.원형 큐의 특성고정된 크기: 원형 큐는 고정된 크기의 배열을 사용하여 구현된다.Front와 Rear 포인터: 큐의 앞과 뒤를 가리키는 두 개의 포인터가 있다. front는 큐의 앞쪽 요소를 가리키고, rear는 큐의 마지막 요소를 가리킨다.원형 배열: 배열의 마지막 인덱스 다음에는 배열의 첫 번째 인덱스가 온다. 즉, 배열이 끝나면 다시 처음으로 돌아간다... 큐 (Queue) 큐 자료 구조 (Queue Data Structure)큐는 FIFO(First In, First Out) 구조를 따르는 자료 구조이다. 즉, 먼저 삽입된 데이터가 먼저 제거된다. 큐는 일상 생활에서 쉽게 찾을 수 있다. 예를 들어, 은행의 대기 줄이나 프린터 작업 대기열이 큐의 예이다. 큐는 한쪽 끝에서 삽입 연산이 이루어지고 반대쪽 끝에서 제거 연산이 이루어지는 특성을 갖는다.큐의 주요 연산Enqueue: 큐의 끝(뒤쪽)에 새로운 요소를 추가한다.Dequeue: 큐의 앞(앞쪽)에 있는 요소를 제거하고 반환한다.Peek/Front: 큐의 앞에 있는 요소를 제거하지 않고 반환한다.isEmpty: 큐가 비어 있는지 확인한다.Size: 큐의 크기를 반환한다.큐의 동작Enqueue 연산: 큐의 끝에 새로운 요소.. 스택(Stack) 스택 자료 구조 (Stack Data Structure)스택은 컴퓨터 과학에서 가장 기본적이고 중요한 자료 구조 중 하나이다. 스택은 데이터를 LIFO(Last In, First Out) 방식으로 저장하고 관리한다. 이는 마지막에 삽입된 데이터가 가장 먼저 제거된다는 것을 의미한다. 스택은 일상 생활에서도 쉽게 찾을 수 있다. 예를 들어, 접시를 쌓을 때 가장 위에 있는 접시가 가장 먼저 사용되는 방식이 스택과 동일하다.스택의 주요 연산Push: 스택의 맨 위에 새로운 요소를 추가한다.Pop: 스택의 맨 위에 있는 요소를 제거하고 반환한다.Peek/Top: 스택의 맨 위에 있는 요소를 제거하지 않고 반환한다.isEmpty: 스택이 비어 있는지 확인한다.Size: 스택의 크기를 반환한다.스택의 동작Push.. 시퀀스 해킹, 해시, 슬라이스 사용자 정의 시퀀스형 Vector 클래스class Vector: def __init__(self, *args): self._values = list(args) def __len__(self): return len(self._values) def __getitem__(self, index): if isinstance(index, slice): return Vector(*self._values[index]) elif isinstance(index, int): return self._values[index] else: raise TypeError("Invali.. 파이썬스러운 객체(Pythonic object) 파이썬스러운 객체"파이썬스러운 객체"라는 표현은 Python의 철학과 관례를 잘 따르는 객체를 의미한다. Python은 명확하고 간결하며 직관적인 코딩 스타일을 지향하며, 이러한 철학을 잘 반영한 객체를 "파이썬스럽다"고 표현할 수 있다.Pythonic한 객체의 특징명확하고 간결한 코드: Pythonic한 객체는 코드를 읽기 쉽고 이해하기 쉽게 작성한다. 복잡한 로직을 단순하고 직관적으로 표현하려고 노력한다.PEP 8 준수: Python의 스타일 가이드인 PEP 8을 준수한다. 이는 일관된 코드 스타일을 유지하고, 가독성을 높이는 데 도움이 된다.Duck Typing: Pythonic한 객체는 덕 타이핑을 따른다. 객체의 타입보다는 객체가 필요한 메서드나 속성을 가지고 있는지에 중점을 둔다.공개와 비공개.. 객체 참조, 가변성, 재활용 파이썬 변수파이썬에서 변수는 데이터를 저장하는데 사용되는 이름이다. 변수를 사용함으로써 프로그램에서 데이터를 더 쉽게 관리하고 이해할 수 있다.변수의 정의와 할당: 파이썬에서 변수를 생성하고 값을 할당할 때는 = 연산자를 사용한다. 예를 들어,*x = 10은 x라는 이름의 변수에 10이라는 값을 할당한다.동적 타이핑: 파이썬은 동적 타입 언어이다. 이는 변수에 특정한 데이터 타입을 사전에 지정할 필요 없이, 값을 할당하는 순간 해당 변수의 데이터 타입이 결정된다는 의미이다. 예를 들어, x = 10 후에 x = "hello"로 재할당할 수 있으며, 이 경우 x의 타입이 정수에서 문자열로 변경된다.변수명 규칙: 변수명은 문자, 숫자, 밑줄 문자(_)를 포함할 수 있지만, 숫자로 시작할 수는 없다. 또한 파.. 함수 데커레이터(Decorator) & 클로저(Closure) 데코레이터(Decorator)파이썬의 데커레이터는 기본적으로 함수나 메서드의 동작을 변경하거나 확장하기 위한 강력한 도구이다. 데커레이터는 다른 함수를 인자로 받는 함수이다. 데커레이터는 함수를 감싸는(또는 장식하는) 방식으로 작동하여 함수의 전후에 추가적인 코드를 실행할 수 있게 해준다.데커레이터의 작동 원리파이썬에서 데커레이터는 다음과 같이 작동한다:데커레이터는 함수를 인자로 받는다.데커레이터 내부에서, 원래의 함수를 호출하는 새로운 함수를 정의한다.이 새로운 함수는 추가적인 기능을 수행하고, 원래의 함수를 호출할 수 있다.데커레이터는 이 새로운 함수를 반환한다. 이 반환된 함수는 원래의 함수를 "장식"하고, 원래 함수명을 사용하여 호출될 때마다 새로운 기능을 실행한다.기본 데커레이터 예시def my.. 이전 1 ··· 9 10 11 12 13 14 다음 목록 더보기