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

 

머신러닝/딥러닝 강의

머신러닝과 딥러닝의 동작원리와 이러한 알고리즘을 파이썬으로 구현한 강의 자료입니다.

www.youtube.com