[Python] 중급1-2. 중첩함수, lambda함수

HyunJin·2024년 5월 15일

✍ 중첩함수

  • 함수안에 또 다른 함수가 있는 형태
# 함수 내에, 'in_fuction'이라는 중첩함수 설정
def out_fuction():
    print('out_fuction called!!')

    def in_fuction():
        print('in_fuction called!!')
    in_fuction()

out_fuction()

# out_fuction called!!
# in_fuction called!! 
  • 중첨함수 중 내부함수는 함수 밖으로 호출 불가
def out_fuction():
    print('out_fuction called!!')

    def in_fuction():
        print('in_fuction called!!')
    in_fuction()

in_fuction()
# NameError: name 'in_fuction' is not defined.

✔ 실습

  • calculator()함수를 선언하고, calculator() 안에 덧셈, 뺄셈, 곱셈, 나눗셈 함수를 선언하기
def calculator(n1,n2,operator):

    def addCal():
        print(f'덧셈: {round(n1+n2,2)}')

    def subCal():
        print(f'뺄셈: {round(n1-n2,2)}')

    def divCal():
        print(f'나눗셈: {round(n1/n2,2)}')

    def mulCal():
        print(f'곱셈: {round(n1*n2,2)}')

    if operator ==1:
        addCal()
    elif operator ==2:
        subCal()
    elif operator == 3:
        divCal()
    elif operator == 4:
        mulCal()

while True:
    num1 = float (input('실수 n1: '))
    num2 = float (input('실수 n2: '))
    operatorNum= int(input('1. 덧셈, 2. 뺄셈, 3. 나눗셈, 4. 곱셈, 5. 종료 '))

    if operatorNum ==5:
        print('Bye')
        break

    calculator(num1, num2, operatorNum)

# 덧셈 결과
# 실수 n1: 3
# 실수 n2: 5
#1. 덧셈, 2. 뺄셈, 3. 나눗셈, 4. 곱셈, 5. 종료 1
# 덧셈: 8.0

# 뺄셈 결과
# 실수 n1: 10
# 실수 n2: 20
# 1. 덧셈, 2. 뺄셈, 3. 나눗셈, 4. 곱셈, 5. 종료 2
# 뺄셈: -10.0


# 나눗셈 결과
# 실수 n1: 20
# 실수 n2: 5
# 1. 덧셈, 2. 뺄셈, 3. 나눗셈, 4. 곱셈, 5. 종료 3
# 나눗셈: 4.0

# 곱셈 결과
# 실수 n1: 25
# 실수 n2: 6
# 1. 덧셈, 2. 뺄셈, 3. 나눗셈, 4. 곱셈, 5. 종료 4
# 곱셈: 150.0

# 종료
# 실수 n1: 0
# 실수 n2: 0
# 1. 덧셈, 2. 뺄셈, 3. 나눗셈, 4. 곱셈, 5. 종료 5
Bye

✍ lambda 함수

  • lambda 키워드를 사용하면 함수 선언을 간단하게 할 수 있음
calculator= lambda n1,n2: n1+n2
returnValue=calculator(10,20)
print(f'returnValue:{returnValue}') # returnValue:30

✔ 실습

  • 삼각형, 사각형, 원의 넓이를 반환하는 lambda함수 만들기

profile
데이터 분석가 준비생

0개의 댓글