본문 바로가기

python

(56)
module - opencv module - opencv opencv는 이미지/동영상 처리에 사용할 수 있는 오픈소스 라이브러리로써 딥러닝을 공부하기 전에 선행학습해야한다 Anaconda Prompt pip install opencv-python # opencv(computer vision) : 이미지/동영상 처리에 사용할 수 있는 오픈소스 라이브러리 # pip install opencv-python import cv2 from scipy.ndimage import interpolation # print(cv2.__version__) # 이미지 읽기 img1 = cv2.imread('./sajin.jpg') print(type(img1)) #img1 = cv2.imread('./sajin.jpg', cv2.IMREAD_COLOR) ..
module - 라이브러리 라이브러리를 import 하는 방법도 있다 turtle import 예시로 파이썬에서 제공하는 그래픽 라이브러리인 turtle을 import 해보겠다 파이썬 홈페이지 https://www.python.org/ Docs 로 이동해서 turtle을 검색해본다 아래의 url은 검색결과이다 https://docs.python.org/3/library/turtle.html?highlight=turtle#module-turtle 해당 코드를 복사한다 # 파이썬 제공 그래픽 라이브러리(모듈들의 집합) # turtle로 도형 그리기 from turtle import * color('red', 'yellow') begin_fill() while True: forward(200) left(170) if abs(pos())..
module - 사용자 작성 모듈 module - 사용자 작성 모듈 mymodule1 임의의 모듈을 하나 생성했다 #메인으로 사용하지 않고 다른 모듈에 호출될 멤버를 기술하는 용도 price = 12345 def listHap(*ar): print(ar) def kbs(): print('대한민국 대표방송') def mbc(): print('만나면 좋은 친구') module2_main 다른 모듈의 멤버 import # 다른 모듈의 멤버 호출 list1 =[1, 3] list2 =[2, 4] import pack2.mymodule1 pack2.mymodule1.listHap(list1, list2) ([1, 3], [2, 4]) 파이썬 기본 기능으로 해당 모듈의 위치와 이름을 구할 수 있다. print(pack2.mymodule1.__fil..
module - 표준모듈 Module 소스 코드의 재사용을 가능하게 할 수 있으며, 소스코드를 하나의 이름공간으로 구분하고 관리하게 된다 하나의 파일은 하나의 모듈이 된다. 표준모듈, 사용자 작성 모듈, 제3자(Third party) 모듈 모듈의 멤버는 전역변수, 실행문, 함수, 클래스, 모듈이 있다 표준모듈 (내장된 모듈) math 모듈 import math print(math.pi) print(math.sin(math.radians(30))) 3.141592653589793 0.49999999999999994 calendar 모듈 setfirstweekday() 로 일요일부터 시작하도록 설정했다 import calendar calendar.setfirstweekday(6) # 0:월...일(6) calendar.prmonth..
재귀함수(Recursive function), factorial 재귀함수(Recursive function) 재귀함수는 함수가 자기 자신을 호출하게 하여 반복 처리하게 하는 것이다. for, while문에서 구현 가능한 로직을 재귀함수로 작성하는 것도 가능하다. 재귀함수의 기본적인 형태 def CountDown(n): if n == 0: print('완료') else: print(n, end = ' ') CountDown(n - 1) # 재귀 함수 CountDown(5) 5 4 3 2 1 완료 재귀함수 예시 return n + tot(n - 1) 에서 n값을 누적시키면서 자신을 재호출하는 재귀함수 구조를 이해할 수 있다. print('1 ~ 10 까지의 합 구하기') def tot(n): if n == 1: print('탈출') return True return n ..
함수 장식자 decorator 함수 장식자 decorator 함수 장식자는 해당 주함수를 감싼 함수라고 보면 좋다. 보통 함수의 추가기능을 구현하고 싶을때 사용한다. 예시의 1번 방식과 2번 방식을 비교해보면 이해하기 쉽다 # 함수 장식자 (decorator : @ - meta 기능이 있다) # 장식자는 또 다른 함수를 감싼 함수다. 주함수가 호출되면 그의 반환값이 장식자에게 건네진다. # 그러면 장식자는 포장된 함수로 교체하여 함수를 돌려준다. def make2(fn): return lambda:'안녕' + fn() def make1(fn): return lambda:'반가워' + fn() def hello(): return '홍길동' # 1번 방식 hi = make2(make1(hello)) print(hi()) print() #..
일급객체와 일급함수, 람다함수 일급객체 변수나 데이터에 할당 가능, 인자로 넘기기 가능, 리턴값으로 리턴하기 가능하다. 변수에 할당 할 수 있어야 한다. 객체의 인자로 넘길 수 있어야 한다. 객체의 리턴값으로 리턴 할수 있어야 한다. 일급 함수 함수가 다른 일급 객체와 동일하게 다루어 질때, 일급 함수라고 지칭한다 함수를 다른 변수와 동일하게 다루는 언어는 일급 함수를 가졌다고 표현한다. 예를 들어, 일급 함수를 가진 언어에서는 함수를 다른 함수에 매개변수로 제공하거나, 함수가 함수를 반환할 수 있으며, 변수에도 할당할 수 있다. 자바스크립트와 파이썬의 함수는 일급함수로 분류된다. 람다함수 lamda lambda는 함수를 생성할 때 사용하는 예약어 def와 동일한 역할을 한다. 보통 함수를 한줄로 간결하게 만들 때 사용한다. 함수의 ..
클로저(closure) 클로저(closure) 함수안에 또 다른 함수가 선언되어 반환되는 것을 클로저 함수라고 한다. - 전역변수를 사용하지 않고 지역변수를 함수 밖에서 계속 참조 가능 - 내부 데이터의 은닉에 활용 - 객체 처리 효과 가능 파이썬에서 클로저를 만들기 위한 조건 -. 중첩 함수(Nested Function)를 갖는다. -. 중첩 함수는 자신을 감싸고 있는 함수 영역(부모함수)의 변수를 참조하고 있다. -. 부모함수는 중첩 함수(자식 함수)를 반환한다. 클로저를 사용하지 않은 코드 클로저를 사용하지 않는 경우 out()함수를 실행할때마다 부모함수의 변수인 count=0을 참조하기 때문에 몇번을 반복하던 print(out())는 1이 출력된다 print('클로저를 사용하지 않은 경우---') #count = 0 d..