Python_34_ lamda 함수

hyeong taek jo·2023년 9월 14일

Python

목록 보기
38/53

📌 람다(lambda) 함수 정의

📌 파라미터 두개

  • lamda x: x + 1 → 하나의 statement, 콜론(:) 뒤에는 expression(식)만 올 수 있음
  • f 식별자로 람다함수를 가리키게 할 수 있음 → 람다함수도 하나의 객체
g = lambda x, y: x + y
print("g(1, 2)->", g(1,2))

               #inc는 default 파라미터
incr = lambda x, inc = 1: x + inc
print("incr(10)-->", incr(10)) #inc 기본 인수 값으로 1 사용
print("incr(10, 5)-->", incr(10, 5))

g(1, 2)-> 3
incr(10)--> 11
incr(10, 5)--> 15


📌 가변인수

vargs = lambda x, *args: args+args  # *args -> 가변 인수
print("vargs(1,2,3,4,5)->", vargs(1,2,3,4,5)) #(1,2,3,4,5)--> 1은 x, 나머지는 튜플형태로 args에 할당

vargs(1,2,3,4,5)-> (2, 3, 4, 5, 2, 3, 4, 5)


📌 람다 리스트

#리스트의 원소가 람다함수로 들어감
func = [lambda x, y : x + y, lambda x, y : x - y, lambda x, y : x * y, lambda x, y : x / y]

def menu():
    print("0. add")
    print("1. sub")
    print("2. mul")
    print("3. div")
    print("4. quit")
    return input("Select menu:")

while 1:                            # while 1 -> 무한 루프
    sel = int(menu())
    print("sel-> ",sel)
    print("len(func)-->",len(func))
    if sel < 0 or sel > len(func):  # 0보다 작은 값이거나 4보다 큰 값(-1,-2, -3, 5, 6, 7, 8)은 수행 x
        continue
    if sel == len(func):
        break                       # 중간에 break 있어, 조건 미 충족 시 무한루프를 빠져나옴
    x = int(input('First operand:') )
    y = int(input('Second operand:') )
    print("Result = ", func[sel](x,y))
  1. add
  2. sub
  3. mul
  4. div
  5. quit
    Select menu:3
    sel-> 3
    len(func)--> 4
    First operand:2
    Second operand:3
    Result = 0.6666666666666666
profile
마포구 주민

0개의 댓글