C와 C++는 메모리 관리에 더 많은 제어 기능을 제공해 잠재적인 차이점을 제공하는 반면, Python은 이러한 세부 사항을 추상화해 일부 효율성을 희생하는 대신 개발을 간소화한다. C, C++ Low-Level Memory ManagementManual Memory Allocation (수동 메모리 할당)C: C에서는 malloc, calloc, realloc, free와 같은 함수를 사용해 메모리를 직접 관리한다.malloc(size_t size): 초기화 되지 않은 메모리의 크기(바이트)를 할당한다.calloc(size_t num, size_t size): num 요소 배열의 각 크기 바이트에 대한 메모리를 할당하고 모든 바이트를 0으로 초기화한다.realloc(void *ptr, size_t si..
일반적으로 C++(및 C)의 구현은 Python의 구현보다 더 빠른 경향이 있다. 그러나 모든 유형의 애플리케이션에서 성능 차이가 크지는 않다. 예를 들어, 개발 속도 및 유연성 측면에서 Python은 단순성과 풍부한 라이브러리 에코시스템으로 인해 신속한 개발 및 프로토타이핑에 선호되는 경우가 많다. IO-boun 애플리케이션의 경우 Python은 높은 수준의 추상화와 사용 편의성으로 인해 웹 서버, 데이터 처리 스크립트 등 IO 바인딩 애플리케이션에 매우 효율적일 수 있다. 요악하면, C++와 C는 일반적으로 컴파일된 특성과 낮은 수준의 제어로 인해 실행 시간이 빠르지만, Python은 사용 편의성과 빠른 개발 기능으로 인해 실행 속도는 느리지만 많은 애플리케이션에서 강력한 선택이 될 수 있다. 아래는..
파이썬의 스크립트 특성과 객체 지향 프로그래밍 모델 때문에 파이썬에서 "main" 메소드의 개념은 C나 C++의 main 함수와 완전히 다르다. C 또는 C++는 실행하기 위해 반드시 main 함수가 필요하지만 파이썬은 그렇지 않다. 그러나 스크립트를 독립 실행형 프로그램으로 실행할 때 시작점을 제공하고 스크립트를 다른 스크립트의 모듈로 가져올 때 실행해서는 안 되는 코드 부분을 구분하기 위해 C 또는 C++의 main 함수와 유사한 구조가 아래처럼 파이썬에서 자주 사용된다. def main(): # Your main code here print("Hello, world!") if __name__ == "__main__": main() def main() : 파이썬에서 main이라는 함수를 정의하는 부분..
re.compile() 함수는 정규식 패턴을 정규식 객체로 컴파일하는 데 사용된다. 그런 다음 이 객체를 사용해 문자열과 일치시키거나 문자열 내에서 패턴을 검색할 수 있다. 정규식을 객체로 컴파일하면 몇 가지 이점이 있다. 효율성 : 정규식 패턴을 객체로 컴파일하면 패턴이 분석돼 매칭에 최적화된 내부 형식으로 한 번만 변환된다. 동일한 패턴을 여러 번 사용하려는 경우 한 번 컴파일하고 객체를 재사용하는 것이 re.match(), re.search() 등의 함수에서 패턴을 직접 사용할 때마다 다시 해석하는 것보다 더 효율적이다. 재사용 가능성 : 정규식 객체는 일단 컴파일되면 여러 문자열에 걸쳐 여러 번 재사용할 수 있다. 이렇게 하면 코드가 더 깔끔해질 뿐만 아니라 패턴이 한 곳에 정의되므로 유지 관리도..
파이썬의 re 모듈에 있는 re.escape 함수는 문자열의 특수 문자를 escape 처리해 해당 문자가 특수 문자로 해석되지 않고 정규 표현식에서 사용될 수 있도록 설계됐다. "escape"라는 이름이 붙은 이유는 "escape"라는 더 넓은 프로그래밍 개념에서 유래했다. 많은 프로그래밍 언어와 문맥에서 "escape"한다는 것은 그 앞에 다른 문자 (종종 백슬래시 \)를 붙여 그 뒤에 오는 문자를 일반적인 특수 문자가 아닌 문자 그대로 해석해야 함을 나타낸다. 이는 정규식(다른 많은 구문과 마찬가지로)에서 특정 문자(.*?+()[]{}|^$ 등)가 수량화, 그룹화 또는 제어 구조를 나타내는 등 특별한 의미를 갖기 때문에 필요하다. 예시를 살펴보자. 기본적인 사용 : text에서 "Hello, worl..
해결책 : 사용하는 플랫폼(Windows, Linux 등)에 따라 동작하지 않는 해결책도 있음에 유의 기존 일반 string을 raw string으로 변환 dataset_dir = r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener" \을 /으로 치환 dataset_dir = "C:/Users/DeePak/Desktop/myac.csv" \를 \\으로 치환 dataset_dir = "C:\\Users\\DeePak\\Desktop\\myac.csv" 원인 : '\' (백슬래시) 는 다음에 오는 문자에 따라 특수 문자로 인식을 할 수 있다. 예를 들어, 에러를 살펴보면 '\U'는 Unicode로 인식이 되기 때문에 기대한 경로의..
파이썬 공식 웹사이트에서 설명하고 있는 pickle은 아래와 같다. : pickle 모듈은 파이썬 객체 구조를 직렬화 및 역직렬화하기 위한 바이너리 프로토콜을 구현한다. "Pickling"은 파이썬 객체 계층 구조를 바이트 스트림으로 변환하는 프로세스이며, "Unpickling"은 그 반대의 작업으로, 바이너리 파일 또는 바이트-열 객체에서 바이스트 스트림을 객체 계층 구조로 다시 변환하는 작업이다. : The pickle module implements binary protocols for serializing and de-serializing a Python object structure. “Pickling” is the process whereby a Python object hierarchy is..
Singly Linked List 구현은 매우 간단하고, 자주 사용하게 되므로 알아두는 것이 좋다. # Singly Linked List class 정의 class Node: def __init__(self, val): self.val = val self.next = None # '0'이라는 데이터를 담은 head와 cursor 선언 cur = head = Node(0) # '1'이라는 데이터를 담은 새로운 Node 선언해 head의 다음으로 연결 new = Node(1) cur.next = new cur = new # head부터 출력하면 0, 1을 출력으로 확인 가능 test = head while test: print(test.val) test = test.next
set 역시 list를 비롯한 다른 collection과 마찬가지로 다루기 위한 함수들이 존재하고 대표적으로 사용되는 함수들은 아래와 같다. add(elem) : 요소 elem을 set에 추가 remove(elem) : 요소 elem을 set에서 제거하는데 존재하지 않을 수 KeyError 발생 discard(elem) : 요소 elem을 set에서 제거하지만 없어도 error는 발생하지 않음 pop() : 임의의 요소를 반화하면서 제거. set가 비어있다면 KeyError 발생 clear() : set의 모든 요소 제거 참고 - https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset
# set 선언 s = set() # list로 casting l = list(s) 파이썬 공식 사이트에 따른 set에 대한 설명은 아래와 같다. : set 객체는 해시 가능한 별개의 객체들의 정렬되지 않은 컬렉션(collection이다. 멤버십 확인, 배열에서 중복 제거, 교집합, 합칩합, 차집합, 대칭 합 같은 수학 연산 계산 등에 주로 사용된다. 다른 컬렉션과 마찬가지로 set는 x in set, len(set), for x in set를 지원한다. 정렬되지 않은 컬렉션이기에 set는 요소의 위치나 삽입 순서를 기록하지 않는다. 따라서 set는 index나 slice 또는 기타 순서에 대한 동작을 지원하지 않는다. 현재 기본 제공 set 유형에는 set와 frozenset 두 가지가 있다. set ..
- Total
- Today
- Yesterday
- socket programming
- Python
- DICTIONARY
- 이코노미스트
- I2C
- leetcode
- Android
- defaultdict
- 이코노미스트 에스프레소
- Computer Graphics
- 티스토리챌린지
- machine learning
- tf-idf
- The Economist
- The Economist Espresso
- 투 포인터
- min heap
- java
- ml
- 딕셔너리
- join
- C++
- 리트코드
- 파이썬
- 안드로이드
- vertex shader
- 오블완
- Hash Map
- 머신 러닝
- 소켓 프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |