본문 바로가기

패스트캠퍼스_컴공전공필수+인공지능/0원 챌린지

2/21(화) 2. 함수 심화학습

1. 재귀함수

  • 재귀함수
    • 자기 스스로를 호출하는 함수
    • ex)
    • def func(count):
      • if count>0:
        • print(count,'현재')
        • func(count-1)
      • print('결과',count)
    • func(10)
    • => func (10) 이 돌아간다
      • func(10) -> 10현재 -> func(9) -> 9현재 -> func(8) -> 8현재 -> func(7) -> 7현재 -> func(6) -> 6현재 -> func(5) -> 5현재 -> func(4) -> 4현재 -> func(3) -> 3현재 -> func(2) -> 2현재 -> func(1) -> 1현재 -> func(0) -> X(출력 없음) -> 결과1 -> func(1) close -> 결과2 -> func(2) close -> 결과3 -> func(3) close -> 결과4 -> func(4) close -> 결과5 -> func(5) close -> 결과6 -> func(6) close -> 결과7 -> func(7) close -> 결과8 -> func(8) close -> 결과9 -> func(9) close -> 결과10 -> func(10) close
    • 주의!!!
      • 재귀 호출의 단계가 깊어질수록 => 메모리를 추가적으로 사용 => 따라서 종료조건 분명히 해야함!

2. 중첩함수

  • 중첩함수
    • 함수 안에 정의된 함수
    • def func1(a):
      • def func2():
        • nolocal a
        • ~~
        • return a
      • return func2()
    • func1(2)
    • nolocal : global 과 비슷 
      • global : 전체 큰 코드에서 선언된 변수를 함수에서도 이어서 쓸 수 있음
      • nolocal : 중첩함수일 때 -> 바로 위 함수에서의 변수를 이어서 쓸 수 있음
        • 전체 코드에서 선언된 함수를 nolocal 로 사용하면 에러
    • 주의!!
      • 내부 함수에서 외부 함수의 매개변수와 같은 이름의 변수를 생성할 경우 변수가 꼬인다.

3. lambda 함수

  • lambda 함수
    • 이름이 없는 한 줄 짜리 함수.
    • lambda 인수 나열 : 반환할 내용
    • 인수가 없으면 생략 가능하다.
    • ex) 
      • lambda x,y : x+y
  • ex) 함수의 인수로 함수를 받을 때
    • def run(func, x) :
      • print(func(x))
    • run(lambda x:x+1,1)

 

 

* 필수 삽입 링크 : http://bit.ly/3Y34pE0

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

<사진 2장>