ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

     

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

    댓글

Designed by Tistory.