라이브러리 #
인코딩(encoding) & 디코딩(decoding) #
인코딩(encoding)은 사람이 인지하거나 사용하는 데이터를 컴퓨터가 인지하고 사용하는 0,1의 데이터로 변경하는 과정을 칭한다.
$e.x.,\;$ ASCII, Base64, unicode
data.encode('utf-8')
# b.'xxx' 처럼 byte형식으로 변경이된다.
디코딩(decoding)은 컴퓨터가 인지하고 사용하는 0,1의 데이터를 사람이 인지하거나 사용하는 데이터로 변경하는 과정을 칭한다.
data.decode('utf-8')
# byte형식이 기존의 코드로 변경이된다.
python은 utf-8(3.x) ASCII(2.x)을 기본 인코딩으로 사용한다.
# 디폴트 인코딩을 따르지만 선언시 선언한 형식으로 인코딩한다
# -*- coding: utf-8 -*-
data = "hello world"
인코딩과 디코딩은 서로 다른 형식으로 변환을 할경우 에러를 유발한다.
클로저(closure) & 데코레이터(decorator) #
클로저(closure)는 함수안의 함수를 결과로 반환할때 출력되는 함수를 클로저 라고 부른다. 클로저는 아래와 같은 경우에 사용한다.
- 콜백함수
- 함수 실행 순서 조정
- 데코레이터 함수
def func1():
def func2():
return <output2>
return func2
if __name__=="__main__":
data1 = func1()
real_data = data1() #클로저 사용법
데코레이터(decorator)는 함수를 인수로 받는 클로저를 의미하며, 함수를 꾸며주는 함수로 어노테이션으로 @를 사용해서 표현이 가능하다.
def func3()
return <output3>
def func1(func3):
def func2():
func3()
return <output2>
return func2
data1 = func1(func3)
real_data = data1()
---------------------------#same
def func1(func3):
def func2():
func3()
return <output2>
return func2
@func1
def func3()
return <output3>
real_data = func3()
이터레이터(iterator) & 제너레이터(generator) #
이터레이터(iterator)는 for문과 같이 순차적으로 사용할 수 있는 객체를 의미하며 한번 사용시 재사용할 수 없다.
- iter()를 이용하여 반복 객체 생성
- next()를 이용하여 객체에서 각각 다음값을 추출
list1 = []
iterator = iter(list1)
next(iterator)
next(iterator)
...
제너레이터(generator)는 이터레이터를 생성하는 함수로 함수의 출력이 순차적으로 다른 값을 출력하기 원할때 사용한다.
def generator():
yield 'a'
yield 'b'
yield 'c'
gen = generator()
next(gen)
next(gen)
...
타입 어노테이션(type annotaion) #
타입 어노테이션(type annotaion)은 각변수의 자료형을 적시하는 것으로 에러의 가능성을 감소시키고, 코드의 가독성과 협업의 효율성을 위하여 사용한다.
def func(data1: <type>, data2: <type>) -> <type>
func__annotations__
#{data1: int, 'data2': int, 'return': int }
문자열 처리 #
문자열을 처리하는 방식으로는 str(), repr() 두가지가 있으며 아래의 특징을 가진다.
- str() : 사용자 인터페이스 문자열
- repr() : 프로그램 인터페이스 문자열
data = repr("hello world")
eval(data) #프로그램에서 다시 사용가능한 형태로 변형
외부라이브러리 사용 #
pip 라이브러리 매니저
pip install <pkg>
pip uninstall <pkg>
pip install <pkg==version> 버전별 설치
pip install —upgrade <pkg> 업그레이드
pip list
pip list —format=freeze > requirements.txt 리스트 파일로 저장
pip install -r requirements.txt 리스트 설치