-
[Python] 함수, 람다프로그래밍/Python 2020. 11. 21. 18:13
함수, 람다
함수(Function)
- 파이썬 함수는
def 함수이름 (입력1, 입력2, ....):
형태를 가짐 - 파이썬 함수는 한 개 이상의 return 값을 반환할 수 있음
- return 값은 콤마(,)로 분리하여 받거나 tuple 형태로 받을 수 있음
def sum(x, y): s = x + y return s result = sum(10, 20) print(result)
# 결과 30
def multi_ret_function(x): return x + 1, x + 2, x + 3 # return (x + 1, x + 2, x + 3) x = 100 y1, y2, y3 = multi_ret_function(x) print(y1, y2, y3)
# 결과 101 102 103
default parameter
- 함수의 입력 파라미터에 기본 값을 지정하는 것을 의미
- 이러한 파라미터는 함수가 호출되었을 때, 입력 파라미터에 명시적인 값이 전달되지 않으면 기본으로 지정한 값을 사용하겠다는 의미
# default parameter def print_name(name, count = 2): for i in range(count): print("name == ", name) print_name("DAVE")
# 결과 name == DAVE name == DAVE
mutuable / immutable parameter
- 입력 파라미터가 mutuable(list, dict, numpy 등) 데이터 형인 경우, 원래의 데이터에 변형이 일어남
- 입력 파라미터가 immutuable(숫자, 문자, tuple 등) 데이터 형인 경우, 원래의 데이터에 변형이 일어나지 않음
# mutuable, immutuable parameter def mutuable_immutuable_func(int_x, input_list): int_x += 1 input_list.append(100) x = 1 test_list = [1, 2, 3] mutuable_immutuable_func(x, test_list) print("x == ", x, ", test_list == ", test_list)
# 결과 x == 1 , test_list == [1, 2, 3, 100]
람다(Lambda)
- 람다는 한 줄로 함수를 작성하는 방법으로, 익명(anonymous) 함수 또는 람다 표현식(lambda expression) 등으로 불림
- 다른 함수의 파라미터로 넣을 때 주로 사용하며, 머신러닝에서 미분을 계산하기 위해 필요한 수치 미분(numerical derivative)과 활성화 함수(activation function) 등을 표현할 때 쓰임
- 람다는
함수명 = lambda 입력1, 입력2, ... : 대체되는 표현식
형태를 가짐
# lambda 함수 선언 f = lambda x : x + 100 for i in range(3): print(f(i))
# 결과 100 101 102
# lambda 에서 입력값을 반드시 이용할 필요는 없음 def print_hello(): print("hello python") def test_lambda(s, t): print("input1 == ", s, ", input2 == ", t) # s, t 선언 및 할당이 없으면 error s = 100 t = 200 fx = lambda x, y : test_lambda(s, t) fy = lambda x, y : print_hello() fx(500, 1000) fy(300, 600)
# 결과 input1 == 100 , input2 == 200 hello python
참고
www.youtube.com/playlist?list=PLS8gIc2q83OjStGjdTF2LZtc0vefCAbnX
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 파이썬 문법 정리 (0) 2022.01.22 [Python] 넘파이(Numpy) (0) 2020.11.23 [Python] 클래스, 예외처리 (0) 2020.11.21 [Python] 조건문, 반복문 (0) 2020.11.21 [Python] 데이터 타입(Data Type) (0) 2020.11.21 - 파이썬 함수는