본문 바로가기
개발일지/Python

22.03.01 [파이썬 웹개발] 람다 함수 개념정리 (lambda) 매우중요

by 개발에정착하고싶다 2022. 3. 1.
320x100

이 파이썬 웹 개발 과정을 듣게된 계기는, 현재 멀티캠퍼스에서 진행중인 AI 과정으로 인해서 듣고 있다.

하지만 중간에 어떤 책을 보고 나서는 생각이 달라졌다.

애초에 내가 할 일은 웹개발과 결이 다른데 내가 굳이 할 필요가 있을까? 라는 의문을 어느정도는 지울 수 있게되었다.

 

하지만 이 강의는 이미 시작한 강의이기도 하고, 여태까지 들었던 파이썬 강의중에선 가장 낮다고 생각한다.

특히 람다 파트가 인상적이였다.

여태까지 강의 몇개를 들었었는데, 너무 수준이 낮다가도 어느순간되서 막상 어려울때 되면 설명이 없다든지 예제도 솔직히 그걸 이해하기에 적합하지 않은 거여서 진짜 개빡쳤었는데 최소한 여태까진 매우 양호하다.

그리고 이걸 일일이 정리하기에는 뭔가 그랬는데,

람다는 두고두고 완전히 체화될때까지는 너무 필요한 개념일 것 같아서 정리한다.

 

# 1. 함수 정의 방법
# 기존 함수 정의 방법

# def 함수이름(매개변수):
#     return 결과


# 람다 함수 정의 방법으로는

# lambda 매개변수:결과

# ===========================================

# 이 둘은 같은 기능을 가진다
# def minus_one(a):
#     return a-1

# lambda a:a-1

# =========================================
# 2. 함수 호출 방법

# 기존 함수 호출 방법
# >>>minus_one(10)
# -> 9

# 1) 람다 함수 호출 방법
# >>> (lambda a:a-1)(10)
# -> 9

# 2) 람다 함수 호출 방법
# >>> minus_one = lambda a:a-1
# >>> minus_one(10)
# -> 9

#=====================================
# 3. 함수 사용 방법 (if문)

# 기존 함수 정의 방법
# def is_positive_number(a):
#     if a>0:
#         return True
#     else:
#         return False


# 람다 함수 정의 방법

# lambda a:True if a>0 else False
# a>0까지 작성된 것을 기준으로 의미가
# 만약 a가 0보다 크다면 a는 True 다.
# 그렇지 않다면 False 다.
# 라는 의미다

# 기존 함수 호출 방법

# >>>is_positive_number(-2)
# False

# >>>(lambda a:True if a>0 else False)(-2)
# False
# 때문에 호출까지 감안했을때는 상황에 따라서
# a = lambda ~~~~ 라는 식으로 해서 쓰이는 것이 더 유용할 것 같다.

 

===============================================================

 

# 기존 함수

def minus_one(a):
    return a-1

# 람다 함수
lambda a:a-1

# 람다 함수 호출 방법 1. 함수 자체를 호출
print((lambda a:a-1)(10))
# 순서1. a를 매개변수로서 넣어주면
# 순서2. :다음이 출력 조건인데, a-1된 값을 리턴해준다.
# 순서3. 매개변수 a는 위의 수식에서는 10으로 해준다.
# 순서4. 따라서 값은 9다.

# 람다 함수 호출방법 2. 변수에 담아서 호출
minus_one = lambda a:a-1
print(minus_one(100))


# 람다 함수에서 if 문 사용

# 기존 함수
def is_positive_number(a):
    if a>0:
        return True
    else:
        return False

# 람다 함수
lambda a: True if a>0 else False

# 람다 함수 호출 (1)
print((lambda a:True if a>0 else False)(-2))

# 람다 함수 호출 (2)
is_positive_number = lambda a: True if a>0 else False
print(is_positive_number(2))



300x250