ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [혼공파] 4주차 과제 - 함수(기본 매개변수 vs 가변 매개변수)
    AI/혼공학습단10기_Python 2023. 7. 29. 11:30

    1. 핵심 내용
    1) 함수 기본
      - 호출: 함수를 실행하는 행위
      - 매개변수: 함수 괄호 안에 넣는 값(숫자/문자열/변수 등)
      - 리턴 값: 함수의 결과
      - 가변 매개변수 함수: 매개변수를 원하는 만큼 받을 수 있는 함수
      - 기본 매개변수: 매개변수에 아무것도 넣지 않아도 들어가는 값

    2) 함수 활용
      - 재귀함수(Recursion Function): 내부에서 자기 자신을 호출하는 함수
      - 메모화(Memoization): 한 번 계산한 값을 저장해 놓은 후, 이후 저장된 값을 재활용하는 기술
      - 조기 리턴(Early Returns): 함수의 흐름 중간에 return 키워드를 사용해 코드 들여쓰기를 줄이는 등 효과를 가져오는 기술
       예) 조기리턴을 활용해 코드를 가볍게 변환
    def fibonacci(n):
        if n in dictionary:
            return dictionary[n] # 메모되어 있으면 메모된 값 리턴
        output = fibonacci(n-1) + fibonacci(n-2) # 메모되어 있지 않으면 값 계산
        dictionary[n] = output
        return output

    3) 함수 고급
      - 튜플(tuple)은 리스트(list)와 비슷하지만 요소를 수정할 수 없는 파이썬의 특별한 문법. 괄호를 생략해서 다양하게 활용할 수 있음.
      - 람다(lambda)는 함수를 짧게 쓸 수 있는 파이썬의 특별한 문법
      - with구문은 블록을 벗어날 때 close()함수를 자동으로 호출해주는 구문



    2. 범위 내부의 정수를 모두 더하는 함수 만들기

    - "res"는 더해지는 모든 정수를 저장하는 변수

    - start 매개변수에 지정되는 숫자 부터 end에 지정되는 숫자까지 계속 더하는 수식이 "res += i"이며, 여기서 end+1까지 지정하는 것은 범위가 end미만까지 지정되기 때문



    3. 매개변수, 기본 매개변수, 가변 매개변수

    1) 매개변수
      - 매개변수: 함수를 생성할 때 괄호 내부에 들어가는 식별자
      - 매개변수의 기본 형태는 아래와 같음.
    def NAME(PARAM1, PARAM2, ....):
        xxxxx(내용)
    - 함수를 호출할 때 매개변수를 넣지 않거나 더 많이 넣으면 type error 발생

    2) 가변 매개변수
      - 가변 매개함수: print() 함수와 같이 매개변수를 원하는 만큼 받을 수 있는 함수
      - 가변 매개함수의 기본 형태는 아래와 같음.
    def NAME(PARAM1, PARAM2, ..., *values):
        xxxx(내용)

      .예를 들면 아래와 같음.
    def print_n_times(n, *values):
        for i in range(n):
            for value in values:
                print(value)
            print()
    => 함수 호출: print_n_times(3, "안녕", "대한", "민국")
    => 함수 결과: 안녕₩n대한₩n민국₩n₩n안녕₩n대한₩n민국₩n₩n안녕₩n대한₩n민국

      - 가변 매개변수 제약사항으로서, 가변 매개변수 뒤에는 일반 매개변수가 올 수 없다는 점과 가변 매개변수는 하나만 사용할 수 있다는 점이 있음.

    3) 기본 매개변수
      - 기본 매개변수: 가변 매개변수 뒤에도 올 수 있는 특수한 매개변수로서, "매개변수=값" 형태를 갖고 있고 이는 매개변수를 입력하지 않았을 때도 매개변수에 들어가는 default value임.
    - 기본 매개변수 뒤에도 일반 매개변수가 올 수 없음.

Designed by Tistory.