본문 바로가기
반응형

python93

[Python] Closure 설명, 사용 방법 및 예제 Closure의 사전적 의미를 먼저 보면 폐쇄이다. 하지만 이렇게 보는것은 조금 이해에 도움이 되지 않을 것 같아서 비유를 해서 설명해보겠다. 우선 객체지향 프로그래밍에서 중요한 것중에 encapsulation이 있다. 이것과 비슷하게 함수를 캡슐화하는 것이나 함수를 찍어내는 공장이라고 이해하면 좋을 것 같다. 예제 코드를 보겠다. def add(var): return var + 2 def multiply(var): return var * 2 def factory(function, n): # 함수를 파라미터로 받는 Factory def closure(var): # Closure 생성 for _ in range(n): var = function(var) return var return closure pri.. 2022. 5. 31.
[Python] 피보나치 수열 구현 (fibonacci sequence) 이번에는 저번 sorted 포스팅에 이어 과제로 자주 나오는 피보나치 수열을 구현해보겠다. 우선 피보나치 수열이란 첫째 항, 둘째 항이 모두 1이면 그 뒤의 모든 항은 그 앞 두 항의 합인 수열이다. 우선 피보나치 수열을 살펴보자 $$ \begin{align} &F_{0}=&0\\ &F_{1}=&1\\ &F_{n}=&F_{n-2}&+&F_{n-1}& \end{align} $$ 위와 같은 일반항으로 수열이 나타난다. 결국 0, 1, 1, 2, 3, 5, 8, 13, 21 ...... 이런식으로 증가하는 수열이다. 그렇다면 구현해보겠다 우선 우리가 기존에 알던 방식으로 해보겠다. $F_{1}$항부터 시작하도록 하겠다. def fibonacci(number): i=2 arr=[1,1] if(number 2022. 5. 26.
[Python] 내장함수 sorted 구현 이번에는 어디든지 많이 사용되는 내장함수 sorted를 구현하려고 한다. 실제 업무나, 코딩테스트 등등 정말 실생활(?)에 많이 사용되는 함수라고 생각된다. 또 대학교에서 처음 언어를 배울 때 최적화 해서 구현하는 것이 과제로 많이 나온다. sorted의 기능은 글자 그대로 sort를 해주는 함수이다. 오름차순이나 내림차순으로 정렬을 해줄 수 있다. 내가 C 개발자라 신기했던 것 일 수 있지만 python에서는 어떤 키 값으로 sort할지도 정해줄 수 있다. 그럼 사용 방법을 보자 test1 = [7, 4, 2, 6, 8] print(sorted(test1)) #[2, 4, 6, 7, 8] test2 = [(1, 2), (6, 2), (5, 3), (10, 5)] print(sorted(test2)) #.. 2022. 5. 24.
[Python] 내장함수 sum 구현 이번에는 sum을 구현하려고 한다. 머신러닝 분야나 선형대수학 등등 많은 수학 분야에서 쓰이는 내장함수이다. 사용법을 먼저 보면 iterable과 start값(옵션, 기본값=0)을 넘겨주고 iterable을 start값부터 차례대로 돌면서 더하고 다 더한 값을 return 한다. 예시를 보자 test = [7, 4, 2, 6, 8] print(sum(test)) #27 print(sum(test,1)) #20 이제 로직은 매우 쉽다. 항상 하듯이 iterable을 순환하며 값을 더하고 그 값을 반환하면 된다. 그럼 구현해보자 def my_sum(iterable, start=0): res=start for i in iterable: res+=i return res 기존에 filter와 map등을 구현하며 .. 2022. 5. 19.
반응형