profile
pllpokko@alumni.kaist.ac.kr
post-thumbnail

다형성 composition: 상속 받기엔 너무 무겁다. 하지만 class내 메서드를 사용하고 싶다.

composition 하나의 Class에서 instance method를 다른 곳에서 사용하고 싶을 때,

2022년 6월 6일
·
0개의 댓글
·

OOP

Class 어떤 문제를 해결하기 위한 데이터를 만들기 위해 OOP 원칙에 따라 집단(현실 세계)에 속하는 속성과 행위(methods)를 변수와 메서드로 정의한것 로봇 설계도 instance (object) Class에서 정의한 것(설계도)를 토대로 실제 메모리상에 할당된 것(실제 사물, object)로 실제 프로그램에서 사용되는 데이터 각각 독립적 실제 로봇 OOP 원칙 캡슐화: encapsulation 객체(object)의 속성과 행위(methods)를 하나로 묶고, 구현된 일부를 외부에 감추어 은닉한다. 추상화: abstraction 불필요한 정보는 숨기고 중요한(필요한) 정보만을 표현함으로써 공통의 속성이나 행위(meth

2022년 6월 5일
·
0개의 댓글
·
post-thumbnail

shutil : 고수준 파일 연산

shutil shutil: 고수준 파일 연산 copyfile, copy, copy2 함수는 기본적인 사용법은 아래와 같다. copyfile, copy: 메타 정보는 복사되지 않는다. 즉, 작성한 날짜=복사한 날짜로 변경된다. copy2: 메타정보도 복사 즉, 파일 작성한 날짜등 정보도 복사 copyfileobj 파일류 객체 fsrc의 내용을 파일류 객체 fdst에 복사한다. length는 버퍼 크기이다. copytree src를 루트로 하는 전체 디렉토리 트리를 dst라는 디렉토리에 재귀적으로 복사하고 대상 디렉토리를 반환한다. 디렉토리의 권한과 시간은 copystat() 으로 복사되고, 개별 파일은 *`c

2022년 3월 21일
·
0개의 댓글
·
post-thumbnail

decorator: 함수에 공통, dispatch: 오버로딩

decorator '공통 함수' 작성 -> 코드 재사용성 none_doce(5)를 해야 진짜 실행된다. (불편.. 그래서 decorator 실행됨) decorator 예제 1. 함수'들' 중에 다 공통으로 들어가는 함수가 있다. 여기서 갑자기 각 함수에 copyright를 출력하는 걸 추가해야한다고 한다. 모든 함수

2022년 3월 20일
·
0개의 댓글
·
post-thumbnail

[python] bisect : 이진 탐색, Lower Bound, Upper Bound

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라고

2021년 11월 9일
·
0개의 댓글
·
post-thumbnail

[module] deque (queue+stack)

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 처럼 사용하려

2021년 11월 8일
·
0개의 댓글
·
post-thumbnail

[python] zip

zip zip()은 iterable 객체를 인자로 받아 각 객체가 담고 있는 element의 iterator를 반환한다. dict와 같이 사용 주의 사항: 각 길이가 다를 때 가장 짧은 인자를 기준으로 데이터가 엮이고 나머지는 버려진다.

2021년 11월 7일
·
0개의 댓글
·
post-thumbnail

[python] PyPy

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가 있다.

2021년 10월 28일
·
0개의 댓글
·
post-thumbnail

[python] tips

intmax = sys.maxsize in: list내 값 쉽게 확인 in list[2:] : slice 를 통해 활용도 Up! x in list: x는 단일 값이어야함 max(): iterable 최대 정수 1. list내 int element 최대값 2. list내 tuple의 특정 요소 최대값

2021년 10월 20일
·
0개의 댓글
·
post-thumbnail

[python] queue

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

2021년 10월 17일
·
0개의 댓글
·
post-thumbnail

fd open json csv

open open 함수를 통해 읽기 쓰기가 가능한 파일 객체를 생성할 수 있다. .readlines()는 문자열을 '개행 문자'를 기준으로 split() 시킨 리스트 line-ending을 나타내는 이스케이프 문자는 OS에 따라 다르다. 유닉스: '\n' 윈도우즈: '\r\n' 'r'로 열면 둘다 -> '\n' 으로 변환한다. 이미지 파일등 바이너리를 텍스트모드로 열면 이 변환때문에 데이터 오류가 발생할 수 있다. 바이너리는 'rb'로 열자 json json file![](https://images.velog.io/imag

2021년 10월 13일
·
0개의 댓글
·
post-thumbnail

[python] C Library 사용, 'C'로 된 '모듈'만들기

1. Python에서 C lib 사용 1. C로 만든 Shared Library 간단한 C로 만든 shared library 제작 shared library로 만들기 Focus int add(int a, int b): 정수형 반환 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

2021년 10월 7일
·
0개의 댓글
·
post-thumbnail

[python] argument, recursive 주의

python function def 함수이름(): ex) def anyTriggerOpen(): argument positional argument C-like style 처럼, 위치로 매개변수를 주고 받는 것 default 값 오른쪽 끝에서 부터 채워나가기 허용 중간에 <span style="color:fireb

2021년 10월 6일
·
0개의 댓글
·
post-thumbnail

from import

init.py는 빈 파일 일 수 있음 init.py가 폴더 안에 있으면 package로 인식된다. (python 3.3부터는 없어도 됨) 일반적인 from, import 사용법 *impor

2021년 10월 6일
·
0개의 댓글
·
post-thumbnail

[python] File I/O

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

2021년 8월 30일
·
0개의 댓글
·
post-thumbnail

[python] module: requests HTTP protocol handler

출처: 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

2021년 8월 30일
·
0개의 댓글
·
post-thumbnail

[python] pdb: 파이썬 디버거

pdb GNU gdb처럼 파이썬엔 pdb Python Debugger 모듈을 제공한다. gdb와 명령어가 상당이 비슷해서 gdb를 사용하던 사람들은 쓸만하다. 기본적으로 제공된다. 실행 gdb 처럼 한줄 한줄 명령어로 실행한다. option, argument 명령 list 디버거 명령들 h(elp) 는 h로 사용할 수 있음 argument는 반드시 명령과 공백(스페이스, 탭)으로 구분 optional argument는 [ ] l(ist) 실행 후, enter를 눌리면, 그 다음의 11줄이 출력됨 파이썬 문장 앞에 !를 붙여서 사용할

2021년 8월 8일
·
0개의 댓글
·
post-thumbnail

입출력, 스택 에러, Tips..

알고리즘 문제 연습용 Python3 기준 Tips Python I/O Tips 입력 입력때, 간단히 sys를 import 하여 한 줄 씩 입력 받자 sys.stdin.readline()은 STDIN으로 부터, 입력받은 '문자열'을 str 로 반환! 입력 갯수 N 받기 입력 내용 Array로 받되, int형 list로 변경 출력 list 내부 element만 한 칸의 'space'를 주어 출력 하고 픈 경우 물론 slicing도 잘 먹힌다. 파일로 입력 주기 ![

2021년 8월 2일
·
0개의 댓글
·
post-thumbnail

Trouble shootings, RecursionError

'_ctypes' 모듈 system에 libffi-devel이 없어서 생기는 문제 해결책 1. 현재 pyenv혹은 사용하는 python version을 체크하고 libffi-dev 패키지 설치 현재 사용하는 python version 환경을 지우고 재 설치 3-1. 본인은 pyenv를 사용하므로 아래의 명령으로 파이썬 지우고 재설치 재귀 문제 RecursionError는 재귀와 관련된 에러 Python이 정한 최대 재귀 깊이는 sys.getrecursionlimit()을 이용해 확인할 수 있다. BOJ 사이트의 채점 서버에서 재귀 허용 값은 1,000 이다. 내 시스템 ![](

2021년 8월 1일
·
0개의 댓글
·
post-thumbnail

[python] list, map, heapq(priority Queue), sorted

List list 특징 Feature Python List는 Stack에 가까운 듯 하다. push 기능 = list.append() pop 기능 = list.pop()이 LIFO list[-1] + len(list) = list[+N] 으로 바꿔준다. ![](https://images.velog.io/images/markyang92/post/108a285c-10fe-47c1-8796-4307aa0a9

2021년 7월 30일
·
0개의 댓글
·