학습/python(15)
-
대우를 활용한 코드 최적화(Optimize code with Contrapositive)
A이면 B이다. ~B이면 ~A이다.If P, Then Q. If not Q, Then not P. 대우를 활용해서 파이썬에서 코드 최적화 방법에 대해 정리해본다.1. 조건문 최적화2. 예외 처리3. 논리적 동치 != 복잡도 - O(1) -> O(n) 되는 경우 1. 조건문 최적화# 원래 조건문if not (P and Q): do_something()# 대우를 활용한 조건문if not P or not Q: do_something() not (P and Q) == not P or not Q 드 모르간 법칙. 논리적으로는 동치지만 코드 최적화 부분에서는 느낌이지만 미세하게나마 차이가 존재한다. 1.1 차이둘 다 모두 O(1) 이다.다만 전자의 경우 P가 False 일 경우에도 Q를 판단해..
2024.09.09 -
[threading] ipynb에서 daemon thread 가 적용되지 않는 것에 대해서
ipynb에서 daemon thread 가 적용되지 않는 것에 대해서 선요약 원인 : 단일 셀의 실행이 끝났다고 해서 Python 인터프리터가 종료되는 것은 아니므로 백그라운드 스레드가 계속 실행됩니다. ipynb 말고 py 에서 실행하면 문제 없이 데몬스레드가 종료됨. Treading 모듈 import threading import time def first(): print(11) time.sleep(0.1) print(22) time.sleep(0.1) print(33) time.sleep(0.1) def second(): print(1111) time.sleep(0.1) print(2222) time.sleep(0.1) print(3333) time.sleep(0.1) def loop(): for ..
2024.03.05 -
나머지 // , int.__floordiv__
int.__floordiv__(num1,num2)
2023.09.13 -
lambda(람다) -2, def 함수 문법과 lambda 문법의 차이
def 로 굳이 함수 이름을 지정하지 않고 '기능자체'를 argument에 집어 넣겠다가 lambda 문법의 제작의도이다. lambda {argument 들}: return 받을 값(기능) 전편 글에서 람다의 정의와 제작의도, 구조를 배웠다. 이번 글에서는 lambda 와 def 함수 문법의 차이를 다뤄볼 것이다. 1. argument 의 갯수 def str_add(a,b,c,d): print(a+b+c+d) str_add('q','w','e','r') # qwer str_add2 = lambda a,b,c,d: print(a+b+c+d) str_add2('q','w','e','r') # qwer 둘다 많은 수의 argument 를 받을 수 있다. 2. argument에 default 값 선언 def s..
2023.05.22 -
lambda(람다) -1, lambda의 정의, 제작의도
파이썬에서 : 으로 끝나는 문법들이 몇가지가 있다. if, for, while, def ... lambda 는 def 에 관련된 문법이다. 람다함수는 익명함수 라고 하는데... 그럼 이름을 밝히는 함수는 뭐임? -> 바로 def 파이썬에서 함수는 객체화시킬 수 있다. = 함수를 변수처럼 사용할수 있다. def add(x, y): return x + y result = add(3, 4) print(result) # 결과는 7 이 add 라고 정의한 함수를 a = add a 라는 변수에 할당할수 있다. a(5,6) #출력값 11 함수를 객체화해서 얻는 장점 여러가지가 있는데 더보기 1. 코드의 재사용성이 향상됩니다: 함수를 객체처럼 취급하면 변수에 할당할 수 있고, 다른 함수의 인수로 전달하거나 반환 값으로..
2023.05.22 -
map() -1 map동작 원리, 그냥 list 안에 for 문 쓰면 안됨??
list = [2,4,6,8,10,12,14,16,18,20] # 사이에 들어갈 코드 print("list_square = {}".format(list_square)) Iterable 한 객체를 받아 반복할때 map 을 사용하는데 # for 문 list_square = [] for num in list: list_square.apeend(num**2) # map() list_square = list(map(lambda x: x**2, a)) 예시2 list2 = ["a,1", "b,2", "c,4", "d,6", "e,11"] # 사이에 들어갈 코드 # 출력값 # str = ['a','b','c','d','e'] # num = ['1','2','4','6','11'] str = list(map(lambd..
2023.05.22