Collections module : python Built-in 확장 자료 구조
- deque : popleft, appendleft를 지원 , rotate, reverse 등 linked list의 특성을 지원한다. extendleft로 한번에 여러값 (list형 구조) 도 attendleft가능
- Counter : sequence type data의 element 개수를 dict 형태로 반환, set의 연산도 모두 지원한다.
pythonic code : for loop 사용을 지양하고 한 줄에 끝내는 것
- .split() / .join() : 기준으로 문자열 구분 / 하나의 string으로 반환
- list comprehension : ex) [i+j for i in A for j in B if not (i==j)]
- enumerate : list의 element를 추출할 때 index도 함께 추출 가능
- zip : 두 개의 list의 값을 병렬적으로 추출 ex) for a,b in zip(A,B)
- lambda : f = lambda x,y : x+y 식으로 함수를 스스로 정의할 수 있음
- map :
generator : element가 사용되는 시점의 값을 메모리에 반환하므로 memory사용량을 확연히 줄일 수 있다. generator comprehension (generator expression)으로 불리며 ()를 사용하여 표현
function passing arguments
- Keyword arguments : 변수 명과 함께 적어주며 대입
- Default arguments : 적어주지 않은 경우 def에서 정의된 default값 이용
- Variable-length arguments : 함수의 parameter가 명확히 정의되지 않은 경우, 가변 인자를 사용. Asterisk(*)를 사용하여 parameter를 표시한다. 입력 값은 tuple type으로만 사용한다. kwargs는 dict type으로 입력,
ex)def asterisk_test(a,b,*args,**kwargs): return a+b+sum(args)
OOP : Objected-Oriented Programming
- Class, instance로 나뉜다
- Class 내에는 여러 함수가 정의, init(객체 초기화 함수)으로 self.변수 = 입력값으로 정의
- 는 특수한 예약함수, 변수, mangling으로 사용
ex) main, add, str(객체에 대해 자동으로 print하는), eq__- class 내 method(함수) 추가는 기존 함수와 같지만 반드시 변수에 self를 추가해서 class함수로 인지시켜야한다.
OOP characteristics
- inheritance : 부모 클래스로부터 속성과 method(funciton)을 물려받은 자식 클래스를 생성, Class명을 생성하고 인자로 부모 클래스 명을 대입
class Person(object): def abcd():~~~ class Korean(Person): # Person class를 부모 class로 그 속성, Method를 그대로 가져온다. def abcd(): super().abcd() # 부모 클래스 함수 재정의 이 때 super()로 가져온다 pass
- polymorphism : 같은 이름의 method지만 내부 로직을 다르게 작성
- visibility : 객체의 정보를 볼 수 있는 레벨을 조절, 공개 범위를 조작하는 것이라고 생각하면 됨. self.items에서 self.__items로 설정하면 타객체가 접근 못함.
module & package
- package(project) = group of modules
- moudle : .py 파일을 의미, import를 이용해서 같은 폴더 내의 moduel을 호출
이 때 모든 module을 부르기 보다 해당 .py 내에 있는 일부 함수만 호출할 수 있다.
ex) from module_name import function
Alias설정도 가능 ex) import numpy as np, import pandas as pd- Built-in modules : import random, import time, import urllib.request ...
- package : init, main 등 키워드 파일명이 사용되고, 다양한 모듈들의 합, 폴더로 연결된다.
가상환경 설정
- 프로젝트 진행 시 필요한 패키지만 설치하는 환경
- conda create -n name python=version
예외처리
- try~except :
try: 예외 발생 가능 코드 , except < Exception Type >: 예외 발생시 대응하는 코드
정규표현식
- 특정 규칙 및 복잡한 문자열 패턴을 정의하는 집합을 표현하고 추출할 때 사용 >> 그냥 그 때 그 때 서치해서 사용하기 ^0^