함수 안의 함수와 return
함수 안에서 함수 호출하기
함수 안에서 또 다른 함수를 호출할 수 있습니다. 이 경우 두 가지로 나뉘는데요. 자기 자신을 호출하는 경우와 다른 함수를 호출하는 경우입니다. 자기 자신을 호출하는 경우에는 특별히 재귀 함수라고 합니다.
재귀 함수의 경우에는 무한 번 자기 자신만 호출할 수 있기 때문에 재귀 루프를 탈출할 수 있는 조건이 필요합니다. 반복문에서 break가 이 역할을 했다면, 함수에는 return이 있습니다.
무한 루프에 빠지는 함수
def recall():
print("재귀함수")
recall()
recall()
위의 함수는 무한 루프에 빠지는 함수입니다. 계속해서 자기 자신을 호출하기 때문인데요. return 문을 활용하여 탈출 조건을 적어줘야 합니다. return은 함수에서 탈출 또는 종료를 의미하기 때문에 return 아래의 코드는 실행되지 않습니다.
# 함수에서 return은 반복문의 break와 같다.
def recall(count):
if count == 5:
print("5회 반복되어 재귀함수 종료")
return
count +=1
print("재귀함수")
recall(count)
recall(0)
>>>>> 실행 결과:
재귀함수
재귀함수
재귀함수
재귀함수
재귀함수
5회 반복되어 재귀함수 종료
특별한 함수: lambda
lambda란?
파이썬에서 람다(lambda)는 익명 함수라는 의미를 가진 함수입니다. 익명, 말 그대로 이름을 정의하지 않고 선언하는 함수라는 의미입니다. 사용법은 아래와 같습니다.
lambda 매개변수1, 매개변수2 … : 매개변수의 연산
람다 함수는 사용 빈도가 그렇게 많지 않으면서 함수의 형태로 코드를 활용해야 하는 경우나, map과 같은 다른 함수와 함께 사용하기 위해 선언됩니다.
lambda 예제
두 숫자를 더하는 함수를 lambda 예약어를 통해 구현해 보겠습니다.
# lambda를 사용하면 객체가 반환되므로, 변수에 넣을 수 있 다.
add_two_values = lambda a,b : a+b
add_two_values(1,5)
>>>>> 실행 결과: 6
이번에는 입력된 문자를 대문자로 바꿔주는 함수를 만들어 보겠습니다.
upper = lambda x : x.upper()
upper('me')
>>>>> 실행 결과: 'ME'
'Python > 기초' 카테고리의 다른 글
리스트 정렬 한 글로 끝내기: sort와 sorted 차이 & 여러 조건 정렬 등 (0) | 2023.10.12 |
---|---|
파이썬 제너레이터(Generator) 한 글로 정리하기 (0) | 2023.08.29 |
파이썬 함수 심화2: *args와 **kwargs (0) | 2023.08.27 |
파이썬 반복문: for문의 A to Z 모든 것, 한 글로 정리하기 (0) | 2023.08.26 |
파이썬 반복문: while에 대한 A to Z 한 글로 정리하기 (0) | 2023.08.25 |
댓글