프로그래밍/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