study with Q - 파이썬
-
63 - (파이썬) 람다, key 키워드 매개변수study with Q - 파이썬 2024. 7. 3. 20:16
# 람다 (lambda): aka 간단한 함수를 간단하게 작성할 수 있게 해주는 문법: 매개변수로 함수를 전달하기 위해 함수 구문을 작성하는 것이 번거로울 때 함수를 간단하게 선언하는 방법. 1회용 함수를 만들어야 할 때 주로 사용한다. def square(number): return number**2def is_even(숫자아): return 숫자아 % 2 == 0 위에서와 같이 굳이 저 간단한 함수 쓰겠다고 두 줄이나 소모하며 쓰는 것이며.. 모양새며 영 보기가 거시기혀.그래서 한 줄의 return코드를 가지는 함수를 간단하게 하는 함수를 만듦 → 그게 바로 람다(lambda) #쓰잘것없이 길고 뽀대나지 않던 함수가def square(number): return number**2#이렇게 콤팩..
-
62 - (파이썬) map/filter 함수 구현study with Q - 파이썬 2024. 7. 3. 19:17
def ma_map(cb_m,list_m) : output = [] for yoso_m in list_m: output.append(cb_m(요소)) return output#filterdef ma_filter(cb_f,list_f): output = [] for yoso_f in list_f: #어차피 bool을 리턴한다면 #if cb_f(yoso_f) == True: if cb_f(yoso_f): output.append(yoso_f) return output 참고로...더보기return[콜백함수(표현식) for 표현식 in 리스트]를 사용하면 한 줄로 작성 가능함.나중에 "제너레이터 표현식"이라는 이터레이터를 다루는데, return(콜백함수(표현식) for ..
-
61 - (파이썬) 콜백함수, map/filter 함수study with Q - 파이썬 2024. 7. 1. 21:20
#콜백함수: 매개변수로 전달하는 함수를 (정확하게는 내가 아닌 다른 놈이 로출하는 함수) 콜백함수 라고 한다# 함수를 변수에 저장하기def ctt(): passv = ctt()print(v)>>> None→ ctt라는 함수를 만들고, v라는 변수에 함수를 괄호까지 넣은 다음 출력을 하게 되면 ctt라는 함수가 아무것도 return하고 있지 않기 때문에 None을 return하는 것을 볼 수 있다. 그런데 이렇게 함수를 호출하는 것이 아니라 v라는 변수에 함수를 (괄호를 제외하고) 넣은 다음 실행하면def ctt(): passv = cttprint(v)>>> 변수 v에 ctt라는 함수가 들어있는 것을 확인할 수 있다.따라서 변수 v를 호출할 때 ctt를 호출하는 것을 볼 수 있다.def ctt(): ..
-
60 - (파이썬) 튜플, 이뮤터블 자료, 뮤터블 자료study with Q - 파이썬 2024. 6. 24. 20:41
# 람다: 매개변수로 함수를 전달하기 위해 함수 구문을 작성하는 것이 번거로울 때 함수를 간단하게 선언하는 방법. 1회용 함수를 만들어야 할 때 주로 사용한다. # 튜플: 함수와 함께 사용되는 리스트와 비슷한 자료형으로, 리스트와 다르게 한번 결정된 요소는 바꿀 수 없다. - 소괄호 기호를 사용해서 만든다. - 요소 접근 연산자를 이용해 각각의 요소에 접근할 수 있다.tup = (0,1,"two",True)print(tup)print(tup[0])print(tup[2])print(tup[3])>>>(0, 1, 'two', True)0twoTrue - 요소를 하나만 가지는 튜플을 만드려면 다음과 같이 쉼표를 넣어서 선언한다. (쉼표를 넣지않으면 숫자, 문자열 등에 괄호를 감싼 것이라고 인식한다.)# 이렇..
-
59 - (파이썬) 조기 리턴과 리스트 평탄화하는 재귀 함수study with Q - 파이썬 2024. 6. 23. 12:21
# 조기 리턴memo = {1: 1, 2: 1}def fbmm(n): if n in memo: return memo[n] elif n >= 3 : temporary = fbmm(n-1) + fbmm(n-2) memo[n] = temporary return temporaryprint(fbmm(5)) 파이썬은 조건문이나 반복문을 사용하게 되면 들여쓰기가 들어가게 되는 데, 요걸 줄이는 것이 힘이 많이 들어간다.→ 위의 코드에서 같은 실행값을 얻지만 조건문 하나가 줄어드는 형식으로 바꾸면 다음과 같다.memo = {1: 1, 2: 1}def f(n): if n in memo: return memo[n] temp = f(n-1) + f(n-2) memo[n] = temp r..
-
58 - (파이썬) 재귀 함수, 피보나치 수, 메모화(memorization)study with Q - 파이썬 2024. 6. 19. 21:24
# 피보나치 수열: 수학에서 피보나치 수(영어: Fibonacci numbers)는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열 즉, a_n을 n번째 항이라고 할 때, 다음과 같다.a_1 = 1a_2 = 1a_n = a_{n-1} + a_{n-2} (n>=3인 자연수) #피보나치 수열 Fibonacci numbersdef fbnc(n): if n == 1 or n == 2 : return 1 elif n >= 3 : return fbnc(n-1) + fbnc(n-2)print(fbnc(1))print(fbnc(2))print(fbnc(3))print(fbnc(4))print(fbnc(5))print(fbnc(6))>>>112358 ※ 근디 말여... 숫자가 늘..
-
57 - (파이썬) 재귀 함수, 팩토리얼 연산study with Q - 파이썬 2024. 6. 19. 20:03
# 재귀 함수: 자기 자신을 호출하는 함수 # 팩토리얼 연산: n! = n * (n-1) * (n-2) ... *1 - 팩토리얼 연산 구현 방법 (1) 반복문을 사용def fact(n): output = 1 for i in range(1, n+1) : output*= i return outputprint(fact(2))print(fact(3))print(fact(4))print(fact(5))print(fact(6))>>>2624120720 파이썬 튜터로 확인해보면...더보기def fact(n): output = 1 for i in range(1, n+1) : output*= i return outputprint(fact(6))그리고 return value로 호출되고 함수의 스택은 ..
-
56 - (파이썬) 메모리 구조 : 함수의 값 복사와 레퍼런스 복사study with Q - 파이썬 2024. 6. 15. 13:51
# 결론: 변수를 변수에 할당하면[복사하면] 스택에 있는 것이 할당[복사]되는 것이다. # 기본 자료형 복사 : 중간에 변수를 바꾼다고 해서 원본값에 영향을 주지 않는다.m = 10n = mm = 100print(m)print(n)>>>10010 # 복합 자료형 복사 :주소를 스택에 저장해서 같은 주소를 가리키게 된다.0x01이라는 주소가 들어 있다고 생각하면 기본 자료형과 크게 차이가 없다. 기본 자료형과 비슷하지만 주소가 0x02라고 바뀐다고 생각하면 된다. append 함수를 호출해서 요소를 추가해보면힙에 있는 리스트를 조작했기 때문에 l과 k의 내용이 함께 변경됨을 알 수 있다. # 매개변수 복사 : 함수를 호출할 때 매개변수도 c=a, d=b처럼 복사된다는 사실을 생각하면 예측하기 쉽다.다음의..