wecode40 위코드 Pre Course - 파이썬의 Thread 파이썬에서 하나의 실행 단위라고 할 수 있는 Thread를 정리한다. Thread란? 스레드라고 읽는다. 병렬처리와 관련된 기본적인 개념과 동일한 의미를 가진다. 장점 적절하게 구현된 스레드 구조는 시스템의 자원을 더 효율적으로 사용해서 빠르고 효과적으로 로직을 처리 할 수 있다. 폴링 방식으로 작동하는 로직이 있을 경우에 스레드를 사용해서 비동기적으로 작업을 진행할 수 있다. 단점 무분별하게 구현된 스레드는 시스템의 자원적인 측면에 무리를 줄 수 있다. 스레드 간 자원공유에 대한 명확한 정책을 세워놓지 않으면 설계와 다른 방향으로 동작할 수 있다. Assignment 2개의 스레드에서 1억까지 1씩 더해가는 프로그램의 작동 결과 확인과 문제점 파악 # Assignment 1 def thread_1(nu.. 2020. 7. 25. 위코드 Pre Course - 파이썬의 Lambda 파이썬에서 인라인 함수를 정의할 때 사용하는 Lambda에 대해서 정리한다. Lambda란? 람다라고 읽음 인라인 함수를 정의할 때 사용하며, 익명 함수(Anonymous Functions) 또는 람다 표현식(Lambda Expression) + + + 람다와 일반 함수의 차이점은? 함수는 이름이 있고, 내부에 여러 라인으로 로직을 구성할 수 있으며, return을 통해서 반환 값을 지정해 줄 수 있다. 람다는 이름이 없고, 한줄로 로직을 구성해야 하며, return을 사용하지 않아도 결과를 반환한다. 람다의 로직에 다시 람다를 넣을 수 있다. == "nested될 수 있다." 장점 많은 함수를 사용하게 될 때 생기는 함수명 충돌과 같은 문제의 발생 가능성을 낮출 수 있다. 적절하게 표현된 .. 2020. 7. 25. 위코드 Pre Course - 파이썬의 Generator #send() 사용 예제 def generator_send(): received_value = 0 while True: received_value = yield print("received_value = ",end=""), print(received_value) yield received_value * 2 gen = generator_send() next(gen) print(gen.send(2)) next(gen) print(gen.send(3)) ################################################################3 # 실행 결과 received_value = 2 4 received_value = 3 6 파이썬에서 사용하는 함수 중 특수한 경우라고 볼 수 .. 2020. 7. 24. 위코드 Pre Course - 파이썬의 Iterator Iterator 개념은 파이썬 고유의 개념이 아닌 객체 지향 프로그래밍 언어에는 대부분 포함되는 개념으로 보인다. Iterator 반복자 라고 부르며, 객체 지향 언어에서 배열과 비슷한 자료 구조의 내부 요소를 순회하는 객체를 말함 파이썬에서 해당 객체를 사용할 수 있는 자료형은 String, Tuple, Set, List, Dictionary에서 사용 가능 dir(객체) 결과로 나오는 리스트에 __iter__이 포함된다면 반복자 객체를 사용할 수 있다 반복문을 사용한 방법과 반복자를 사용한 방법의 비교 # 각 방식을 비교 L = [1, 2, 3] for x in L: print(x ** 2, end=' ')#리스트 L의 값을 제곱해서 출력 I = iter(L) while True: try: X = ne.. 2020. 7. 24. 위코드 Pre Course - 파이썬의 Comprehension 이전에 봤었던 한줄로 여러 조건을 사용해서 객체를 만드는 것의 정체였다. Comprehension 컴프리헨션이라고 표현한다. + + + + + + + # Comprehension 예제 example_list = [ i for i in range(1,15)] print(example_list) ################################################ # 실행 결과 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] 세트, 리스트, 딕셔너리를 생성할 때 조건으로 사용할 수 있다. 어떤 자료를 사용하여 새로운 기준을 가진 데이터 모음을 만들 때 특히 유용하다. 절대로 만능이 아니다! 장단점을 확실하게 알고 사용하자. 장점 간단하게 표현된 컴프리헨.. 2020. 7. 24. 위코드 Pre Course - 절대경로와 상대경로 (2) calculator 이라는 이름의 패키지를 한번 직접 만들어보면서 import 진행할 때 절대경로, 상대경로 둘 중 어떤 방식을 선택했는지, 생성한 파일은 어떤 역할을 하는지 등을 정리해본다. 예제 패키지의 구조 main.py # absoulte path # from calculator.add_and_multiply import add_and_multiply # relative path from .calculator.add_and_multiply import add_and_multiply if __name__ == '__main__': print(add_and_multiply(1,2)) add_and_multiply.py from .multiplication import multiply # from ca.. 2020. 7. 22. 위코드 Pre Course - 절대경로와 상대경로 (1) 주어진 Assignment 문제에 맞게 정리를 해보고 있다. sys.modules와 sys.path의 차이점을 서술 sys.modules 이미 로드되어있는 모듈에 이름을 매핑하는 딕셔너리 강제로 다시 로드할 수 있도록 조작할 수 있다. 딕셔너리형이라고 내부의 요소들을 마음대로 수정할 수는 없고, 필수적인 부분을 건들경우 파이썬 전체에 문제가 생길 수 있다. sys.path 모듈의 검색 경로를 지정하는 문자열의 리스트 환경변수와 설치시에 정한 기본값에 종속된다. 자유롭게 내부 데이터를 수정할 수 있지만 자료형이 문자열 또는 바이트 데이터로 한정된다. sys.path와 sys.modules의 차이점 sys.path는 print 결과가 보여주듯이 모듈이 위치한 경로를 가지고 있을 뿐이고 리스트형의 데이터이기 .. 2020. 7. 22. 위코드 Pre Course - Python 1 다행히도 오늘 진행한 repl.it 내용은 간단한 부분이 많아서 특별히 따로 정리할 내용이 많지는 않다. 파이썬 정수 나누기 //연산자로 수행한다. 간단한 연산자지만 있는 줄 몰랐다;;; 파이썬 제곱 연산 ** 연산을 이용해서 수행한다. 이것도 정수 나누기와 동일하게 있는 줄 몰랐음;;; 제곱 같은 건 라이브러리를 쓰거나 구현하거나 해야 할 줄 알았다. Literal String Interpolation print 문을 사용할 때 앞에 f 를 추가해준다. print(f "내용~~ 중간에 {변수}~~ {변수}~~") 식으로 사용해서 문자열 중간중간에 변수 속 데이터를 끼워넣어서 출력할 수 있다. 파이썬의 논리 연산자 &&, || 같은 기호가 아닌 and, or 등 그냥 단어를 사용하면 연산 가능 이제 파이.. 2020. 7. 21. 위코드 Pre Course - 파이썬의 인수(Argument) 파이썬에서 사용되는 인수에 대해서 정리하고 과제를 수행한다. 기본 인수(Positional Argument) 기본적인 사용방법으로 정의한 순서에 맞게 인수를 입력하는 방법 def basic_Arg(name, age): print(name) print(age) basic_Arg("왕민욱", 27) #"왕민욱" 문자열이 name으로, 27이 age로 할당된다. 키워드 인수(Keyword Argument) 함수를 호출할 때 어떤 인수에 데이터를 할당할 지 명시해주는 방법 def keyword_Arg(name, age): print(name) print(age) keyword_Arg(name="왕민욱", age=27) keyword_Arg(age=27, name="왕민욱")#두 호출 모두 정상적으로 작동한다. .. 2020. 7. 21. 이전 1 2 3 4 5 다음