✍ 중첩함수
# 함수 내에, '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함수 만들기

