[요약] 파이썬(Python) - 함수와 람다 사용법
# 함수(function) 정의 및 람다(Lambda) 사용법 # 함수 정의 방법 # def 함수명(parameters): # code # 함수 선언 위치가 중요함(반드시 사용되기 이전에 선언되어야 함) # 예1) def hello(world): print("hello", world) hello("Python!") # hello Python hello(7777) # hello 7777 # 예2) def hello_return(world): val = "Hello " + str(world) return val print(hello_return('Python')) # Hello Python # 예3( 다중리턴 함수 ) def func_mul(x): y1 = x*100 y2 = x*200 y3 = x*300 return y1, y2, y3 val1, val2, val3 = func_mul(100) print(val1, val2, val3) # 10000 20000 30000 # 예4(데이터 타입 변환 - 리스트) def func_mul2(x): y1 = x*100 y2 = x*200 y3 = x*300 return [y1, y2, y3] lt = func_mul2(100) print(lt, type(lt)) # [10000, 20000, 30000] <class 'list'> # 예5(데이터 타입 변환 - 튜플) def func_mul3(x): y1 = x*100 y2 = x*200 y3 = x*300 return (y1, y2, y3) tp = func_mul3(100) print(tp, type(tp)) # (10000, 20000, 30000) <class 'tuple'> print(tp) # (10000, 20000, 30000) # 예6) # *args, **kwargs def args_func(*args): # 튜플 형태로 파라미터를 받아들인다. # print(args) print(type(args)) # <class 'tuple'> for i,v in enumerate(args): print(i, v) args_func('Lee') # ('Lee',) args_func('Lee', 'Kim') # ('Lee', 'Kim') args_func('Lee', 'Kim', 'Lee') # ('Lee', 'Kim', 'Lee') # kwargs = 딕셔너리(Dictionary) 타입 파라미터 def kwargs_func(**kwargs): print(type(kwargs)) # <class 'dict'> for k,v in kwargs.items(): print(k, v, end=",") kwargs_func(name1='Lee') # name1 Lee, print("") kwargs_func(name1='Lee', name2='Park', name3='Kim') # name1 Lee,name2 Park,name3 Kim, print("") # 전체 혼함 테스트 def example_mul(arg1, arg2, *args, **kwargs): print(arg1, arg2, args, kwargs) example_mul(10, 20) # 10 20 () {} example_mul(10, 20, 'Lee', 'Park', ar1=24, ar2=35) # 10 20 ('Lee', 'Park') {'ar1': 24, 'ar2': 35} # 중첩함수(클로저) def nested_func(num): def func_in_func(num): print('>>>', num) print('in func') func_in_func(num + 10000) nested_func(10000) # >>> 20000 # 예7(힌트) # 예4(데이터 타입 변환 - 리스트) # 파라미터는 숫자형으로 넘겨야 하고 리턴값은 리스트이어야 한다는 힌트 지정 def func_mul4(x : int) -> list: y1 = x*100 y2 = x*200 y3 = x*300 return [y1, y2, y3] # [500, 1000, 1500] print(func_mul4(5)) # 람다식 예제 # 람다식 : 메모리 절약, 가독성 향상, 코드가 간결함 # 함수는 객체 생성 -> 리소스(메모리) 할당 # 람다는 즉시 실행(Heap 초기화) --> 메모리 초기화 # 일반적 함수 -> 변수 할당 def func_mul10(num : int) -> int: return num * 10 var_func = func_mul10 print(var_func) # <function func_mul10 at 0x00000162a3ed3708> print(type(var_func)) # <class 'function'> print(var_func(10)) # 100 # 람다정의 lamda_mul_10 = lambda num: num * 10 print('>>>', lamda_mul_10(10)) # >>> 100 # 함수 선언시 파라미터에 함수 또는 람다를 넘길 수 있다. def func_final(x, y, func): print(x * y * func(10)) # 함수 파라미터에 람다를 넘겼다. func_final(10, 10, lamda_mul_10) # 10000 # 함수 파라미터에 람다를 직접 정의했다 func_final(10, 10, lambda x: x*1000) # 1000000
'프로그래밍 > Python' 카테고리의 다른 글
[요약] 파이썬(Python) - 모듈과 패키지 개념 이해 (0) | 2020.11.29 |
---|---|
[요약] 파이썬(Python) - 클래스(Class) 사용법 (0) | 2020.11.23 |
[요약] 파이썬(Python) - 실용코드 - 반복/제어문 (0) | 2020.11.05 |
[요약] 파이썬(Python) 흐름제어 - 반복문 (0) | 2020.10.23 |
[요약]파이썬(Python) 흐름제어 - 조건문 (0) | 2020.10.23 |