본문 바로가기

분류 전체보기

(668)
[Python] 병행성(Concurrency)(1) - basic iterable 객체 - 반복 가능한 객체iterator 객체 - 값을 차례대로 꺼낼 수 있는 객체 iterable 객체 # 반복 가능한 이유? -> 내부적으로 iter() 함수 호출t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'# for 반복for c in t: print(c, end=' ') --------------------------------------------[result]A B C D E F G H I J K L M N O P Q R S T U V W X Y Z iterator 객체 a=t.__iter__()print([next(a) for _ in range(len(t))])# ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', ..
[Python] 일급함수(4) - Decorator - 장점중복 제거, 코드 간결, 공통 함수 작성로깅, 프레임워크, 유효성 체크..... -> 공통 기능조합해서 사용 용이 - 단점가독성 감소특정 기능에 한정된 함수는 -> 단일 함수로 작성하는 것이 유리디버깅 불편 Decorator 미사용 샘플 코드 # 데코레이터 실습 - 미사용import timedef perf_clock(func): def perf_clocked(*args): # 함수 시작 시간 st = time.perf_counter() result = func(*args) # 함수 종료 시간 계산 et = time.perf_counter() - st # 실행 함수명 name = func.__nam..
[Python] 일급함수(2,3) - Closure 파이썬의 변수의 범위 # Ex1def func_v1(a): print(a) print(b)# # 예외, 에러가 발생하므로 주석 처리함.# func_v1(10)# NameError: name 'b' is not defined# Ex2, 당연히 10, 20 출력됨.b = 20def func_v2(a): print(a) print(b)func_v2(10)# 10# 20# Ex3c = 30def func_v3(a): c = 40 print(a) print(c)print('>>',c)func_v3(10)print('>>>',c)# >> 30 # 이건 전역 c 값이 30 이므로# 10 # a 는 10이 전달됨# 40 # 내부에 선언된 c 가 40 이므로 40 출..
[Python] 일급함수(1) - 기본 특징 일급함수런타임 초기화 - 실행시첨에 초기화함수를 변수에 할당 가능함수를 다른함수의 인수로 전달 가능함수를 다른함수의 결과로 반환 가능# 함수 객체def factorial(n): '''Factorial Function -> n : int''' if n == 1 : return 1 return n * factorial(n-1)class A: passprint(factorial(5))print(factorial.__doc__), print()print('함수의 타입과 클래스의 타입 비교')print(type(factorial), type(A))print(dir(factorial)), print()print('함수만 가지고 있는 속성들(함수 - 클레스))')print(set(s..
[Python] 고급 - Dict 및 Set(2) - Sequence(4) Immutable Dict # immutable Dictfrom types import MappingProxyTyped = {'key1': 'value1'}f = dprint('f = d : ', d is f, d == f) # is 는 id 가 같은지 확인, == 는 값이 같은지 확인print('value & id: ', d, id(d))print('value & id: ', f, id(f))print()# Read Only(Immutable Dict 생성)d_frozen = MappingProxyType(d)print(d, id(d), type(d))print(d_frozen, id(d_frozen), type(d_frozen))print(d is d_frozen, d == d_frozen) # is..
[Python] 고급 - Dict 및 Set(1) - Sequence(3) 해시테이블Key에 Value 를 저장하는 구조파이썬 dict 해쉬 테이블 예키 값의 연산 결과에 따라 직접 접근이 가능한 구조key 값을 해싱함수 -> 해쉬주소 -> key 에 대한 value 참조# Dict 구조# print(__builtins__.__dict__)# Hash 값 확인t1 = (10, 20, (30, 40, 50))t2 = (10, 20, [30, 40, 50])print(hash(t1))# 오류 발생print(hash(t2)) # 리스트는 변경가능하므로 해쉬값을 확인 불가능함.--------------------------------------------[result]5737367089334957572-----------------------------------------------..
[Python] 고급 - 리스트 및 튜플(2) - Sequence(2) 컨테이너 타입 자료형(Container : 서로다른 자료형[list, tuple, collections.deque], a = [3, 3.5, 'a'] # 서로 다른 자료형, 컨네이너 타입 자료형 Flat : 한 개의 자료형[str, bytes, bytearray, array.array, memoryview])한개의 자료형만 저장, 빠름, 자연어 처리, 숫자, 이산, 회계분석, 기상데이터 등 단일 형태의 연산 가변(list, bytearray, array.array, memoryview, deque)불변(tuple, str, bytes)Unpacking # Tuple Advanced# Unpacking# b, a = a, bprint(divmod(100, 9))print(divmod(*(100, 9)))p..
[Python] 고급 - 리스트 및 튜플(1) - Sequence(1) 컨테이너 타입 자료형(Container : 서로다른 자료형[list, tuple, collections.deque], a = [3, 3.5, 'a'] # 서로 다른 자료형, 컨네이너 타입 자료형 Flat : 한 개의 자료형[str, bytes, bytearray, array.array, memoryview])한개의 자료형만 저장, 빠름, 자연어 처리, 숫자, 이산, 회계분석, 기상데이터 등 단일 형태의 연산 가변(list, bytearray, array.array, memoryview, deque)불변(tuple, str, bytes) # 지능형 리스트(Comprehending Lists)# Non Comprehending Listschars = '+_)(*&^%$#@!~)'code_list1 = []f..