본문 바로가기

python 시작하기

python 재귀함수와 lamda함수

728x90
반응형

자 이어서 해볼까요?

다음 포스팅이라고 했지 내일이라고 하지 않았습니다. 자 바로 시작합시다.

재귀함수

  • 재귀함수는 반복적인 문제를 깔끔하게 풀고 싶을 때 
  • 복잡한 문제를 작은 하위 문제로 나누어 직관적으로 해결할 수 있음
    • 예: 팩토리얼, 피보나치, 하노이의 탑 등
  • 반복적인 구조의 간결한 표현
    • 트리 구조 탐색, 그래프 탐색(DFS) 등에서 반복문보다 코드가 간결하고 이해하기 쉬움

 

재귀 함수도 while에 무한 반복문과 같이 무한 반복하므로 종료조건이 필요합니다.

자그럼 !를 구해봅시다. 왠 느낌표냐고 물어보시지는 않겠죠????? 팩토리얼을 말하는 것이니까요 ㅎㅎ\

실습!

  • 팩토리얼: 그 수보다 작거나 같은 모든 양의 정수의 곱입니다.
  • 양수만 입력받으세요.
  • EX) 5! = 5x5x3x2x1 =120

재귀함수는 저번에 피보나치 수열까지 했으니까 여기까지만 하겠습니다. 

 

람다식(LAMBDA)

  • 람다함수(Lambda Function)는 짧은 익명 함수를 작성할 때 사용
  • 일반적인 def 키워드를 사용하는 함수와 달리, 이름 없이 한 줄로 간단히 정의 할 수있음
  • lambda 키워드로 익명 함수를 만들수 있음
  • return 키워드 생략함

 

두 개의 함수 식은 같은 역할을 합니다. x와 y값을 받고 add값을 반환합니다.

둘중 어느 식이 더욱 깔끔해 보이나요?

저는 lambda식이 훨씬 깔끔해 보입니다.

 

그럼 lambda가 있으니까 def는 필요 없는거 아닌가라고 질문이 생기실 수도 있는데, 그렇지 않습니다.

lambda는 위 함수처럼 간단한 함수 한줄로 정리되는 함수에 적합하기 때문에 3줄이상 길어지는 함수와 반복문이 포함되는 함수는 def선언문을 쓰는게 더욱 적합합니다.

코딩에서는 절대라는 것이 없습니다. 모든 코드들이 조화를 이루고 활용을 다 할때 깔끔하고 활용성이 높은 코딩이 되는 것입니다. 그러니 앞으로의 내용들만을 이용하지 말고 지금까지의 내용들을 최대한 조화를 이루도록 노력하는 것이 가장 좋습니다.

 

코드는 중복이 계속 이뤄지게 되면 후에 문제가 생겼을 때 중복이 되는 모든 문장을 수정해야 하는 대참사가 일어나니 코드의 활용이 얼마나 중요한지 아시겠죠...

그럼 오늘은 지금까지와는 난이도가 다른 과제를 내드리겠습니다.

 

오늘도 같이 공부하시느라 수고 많으셨습니다!!!!!!

 

 

실습. 함수 종합 프로그래밍

  • 날씨 데이터 분석 프로그래밍 만들기
  • 날씨 데이터는 아래와 같이 2차원리스트 형태로 작성되어 있습니다.
  • 안쪽 리스트는 날짜, 지역, 온도, 강수량 순으로 표기되어있습니다.
    • 출력 결과물

 

제 코딩은 하루코딩에 올려놨습니다. 여러분의 날씨 종합 프로그램과 비교 해보시길 바랍니다~~~~

반응형

'python 시작하기' 카테고리의 다른 글

python 클래스  (4) 2024.12.02
python 객체지향 프로그래밍  (0) 2024.12.02
[pythone] 전역변수와 지역변수  (0) 2024.11.30
Python Def 함수선언  (2) 2024.11.29
Python 조건문과 반복문 (2)  (2) 2024.11.28