composition 하나의 Class에서 instance method를 다른 곳에서 사용하고 싶을 때,
Class 어떤 문제를 해결하기 위한 데이터를 만들기 위해 OOP 원칙에 따라 집단(현실 세계)에 속하는 속성과 행위(methods)를 변수와 메서드로 정의한것 로봇 설계도 instance (object) Class에서 정의한 것(설계도)를 토대로 실제 메모리상에 할당된 것(실제 사물, object)로 실제 프로그램에서 사용되는 데이터 각각 독립적 실제 로봇 OOP 원칙 캡슐화: encapsulation 객체(object)의 속성과 행위(methods)를 하나로 묶고, 구현된 일부를 외부에 감추어 은닉한다. 추상화: abstraction 불필요한 정보는 숨기고 중요한(필요한) 정보만을 표현함으로써 공통의 속성이나 행위(meth
shutil shutil: 고수준 파일 연산 copyfile, copy, copy2 함수는 기본적인 사용법은 아래와 같다. copyfile, copy: 메타 정보는 복사되지 않는다. 즉, 작성한 날짜=복사한 날짜로 변경된다. copy2: 메타정보도 복사 즉, 파일 작성한 날짜등 정보도 복사 copyfileobj 파일류 객체 fsrc의 내용을 파일류 객체 fdst에 복사한다. length는 버퍼 크기이다. copytree src를 루트로 하는 전체 디렉토리 트리를 dst라는 디렉토리에 재귀적으로 복사하고 대상 디렉토리를 반환한다. 디렉토리의 권한과 시간은 copystat() 으로 복사되고, 개별 파일은 *`c
decorator '공통 함수' 작성 -> 코드 재사용성 none_doce(5)를 해야 진짜 실행된다. (불편.. 그래서 decorator 실행됨) decorator 예제 1. 함수'들' 중에 다 공통으로 들어가는 함수가 있다. 여기서 갑자기 각 함수에 copyright를 출력하는 걸 추가해야한다고 한다. 모든 함수
biscet 모듈 Lower bound, Upper bound, 이진 탐색 내용: https://velog.io/@markyang92/algorithm-searching#bound biscet는 binary search를 지원한다. 정렬된 리스트 'a' 에 데이터 x bisect_left(a,x) : -> int 가장 왼쪽 인덱스 반환 lower bound 라고 생각하면 될 듯 bisect_right(a,x) : -> int 가장 오른쪽 인덱스 반환 upper bound라고
deque from collections import defaultdict 로 defaultdict를 사용한 적이 있다. 그것 처럼 deque 도, collections에서 가져온다. list를 이용한 queue, stck를 써도 되지 않는가? > 데크는 스택과 큐를 일반화 한 것입니다 (이름은 《deck》이라고 발음하며 《double-ended queue》의 약자입니다). 데크는 스레드 안전하고 메모리 효율적인 데크의 양쪽 끝에서의 추가(append)와 팝(pop)을 양쪽에서 거의 같은 $O(1)$ 성능으로 지원합니다. 출처: https://docs.python.org/ko/3.9/library/collections.html 즉, list를 queue 처럼 혹은 stack 처럼 사용하려
zip zip()은 iterable 객체를 인자로 받아 각 객체가 담고 있는 element의 iterator를 반환한다. dict와 같이 사용 주의 사항: 각 길이가 다를 때 가장 짧은 인자를 기준으로 데이터가 엮이고 나머지는 버려진다.
PyPy Download link: https://www.pypy.org/download.html 내부에 bin디렉토리 내 pypy 파일이 있다. 동작 시키면 Python 3.8.2의 인터프리터가 동작한다. pyenv 환경에서 설치 pyenv 설치 및 운용은 본 블로그 링크 참고(https://velog.io/@markyang92/python-pyenv) pyenv install --list를 보면 pypy가 있다.
intmax = sys.maxsize in: list내 값 쉽게 확인 in list[2:] : slice 를 통해 활용도 Up! x in list: x는 단일 값이어야함 max(): iterable 최대 정수 1. list내 int element 최대값 2. list내 tuple의 특정 요소 최대값
queue queue module의 Queue 사용 https://docs.python.org/3/library/queue.html list는 배열처럼 random access에 최적화된 자료구조 이기 때문에, list를 가지고 queue 처럼 사용하는 것은 성능적으로 불리함 pop(0), insert(0,x)의 시간복잡도는 $O(N)$ 임!! (충격적이게도..?) Queue생성 queue.Queue([maxsize=N]) class queue.Queue([maxsize=0]): FIFO 큐를 생성한다. args
open open 함수를 통해 읽기 쓰기가 가능한 파일 객체를 생성할 수 있다. .readlines()는 문자열을 '개행 문자'를 기준으로 split() 시킨 리스트 line-ending을 나타내는 이스케이프 문자는 OS에 따라 다르다. 유닉스: '\n' 윈도우즈: '\r\n' 'r'로 열면 둘다 -> '\n' 으로 변환한다. 이미지 파일등 바이너리를 텍스트모드로 열면 이 변환때문에 데이터 오류가 발생할 수 있다. 바이너리는 'rb'로 열자 json json file: 정수형 반환 void sub(double a, double b, double* ret): 포인터를 arg로 사용 int sum(int* arr, int sz): 배열을 arg로 사용 int getarea(Rect* r): 구조체를 arg로 사용 2. import 'ctypes' 위의 libsamplelib.so 를 사용하는 python Code import **ctypes
python function def 함수이름(): ex) def anyTriggerOpen(): argument positional argument C-like style 처럼, 위치로 매개변수를 주고 받는 것 default 값 오른쪽 끝에서 부터 채워나가기 허용 중간에 <span style="color:fireb
init.py는 빈 파일 일 수 있음 init.py가 폴더 안에 있으면 package로 인식된다. (python 3.3부터는 없어도 됨) 일반적인 from, import 사용법 *impor
open() return|value :---|:--- 성공|FILE object 실패|exception OSError([arg]) argument|Description :---|:--- file|path-like object mode|Described at below the table mode|Description|초기 fp.seek(0,os.SEEK_CUR) :---|:---|:--- 'r'|open for reading (default)|0 r+|읽고 쓰기 모드, 하지만 파일이 없으면 *FileNot
출처: https://docs.python-requests.org/en/latest/ import requests get S/F|return :---|:--- 성공|class requests.Response 오브젝트 실패|- Response object class requests.Response object, contains a server's response to an HTTP request. close() Release the connection back to the pool. Once this method has been called the underlying raw object. Must not be accessed again NOTE : Should
pdb GNU gdb처럼 파이썬엔 pdb Python Debugger 모듈을 제공한다. gdb와 명령어가 상당이 비슷해서 gdb를 사용하던 사람들은 쓸만하다. 기본적으로 제공된다. 실행 gdb 처럼 한줄 한줄 명령어로 실행한다. option, argument 명령 list 디버거 명령들 h(elp) 는 h로 사용할 수 있음 argument는 반드시 명령과 공백(스페이스, 탭)으로 구분 optional argument는 [ ] l(ist) 실행 후, enter를 눌리면, 그 다음의 11줄이 출력됨 파이썬 문장 앞에 !를 붙여서 사용할
알고리즘 문제 연습용 Python3 기준 Tips Python I/O Tips 입력 입력때, 간단히 sys를 import 하여 한 줄 씩 입력 받자 sys.stdin.readline()은 STDIN으로 부터, 입력받은 '문자열'을 str 로 반환! 입력 갯수 N 받기 입력 내용 Array로 받되, int형 list로 변경 출력 list 내부 element만 한 칸의 'space'를 주어 출력 하고 픈 경우 물론 slicing도 잘 먹힌다. 파일로 입력 주기  pop 기능 = list.pop()이 LIFO list[-1] + len(list) = list[+N] 으로 바꿔준다. ![](https://images.velog.io/images/markyang92/post/108a285c-10fe-47c1-8796-4307aa0a9