본문 바로가기
[AI+X 역량 강화] 인공지능/1) 기본기: 파이썬, 데이터 수집

#5 파이썬 기초 3 // 함수 문법 정리

by 'here' 2023. 8. 25.

오늘은 함수 문법에 대해 배웠다.


함수(Function)란?

  • 특정 목적을 위해 작성한 코드(연산)의 집합
  • 반복되는 코드를 묶음으로 효율적인 코드를 작성하도록 해주는 기능
  • 독립적인 호출과 간결한 코드 작성을 위해 사용 : 코드 작성의 반복을 줄일 수 있음!

1. 선언, 호출, return, *args, **kwargs

1-1. 선언

def 함수명(param1, param2, ...):
    # 작성하고 싶은 코드 구문
    # ...
    # ...
    return 결과값

1-2. 호출

def 함수명(파라미터):
    return

함수명(아규먼트)
  • 파라미터 : 함수를 선언할때 호출하는 부분에서 보내주는 데이터를 받는 변수
  • 아규먼트 : 함수를 호출할때 함수에 보내주는 데이터
  • 함수를 선언할 때 파라미터의 타입과 개수를 맞추지 않으면 에러 발생

1-3. 리턴

  • 선언한 함수의 결과를 저장
  • 함수 내에서 연산 진행 중에 return에 도달 하면 연산이 종료
  • return을 작성하지 않으면 결과값을 저장하지 않음.

2. *args, **kwargs

  • 함수를 호출할때 아규먼트와 키워드 아규먼트의 갯수를 특정지을수 없을때 사용
  • keyword args의 경우 아규먼트로 함수 호출 시 키워드를 작성하여 호출
  • args는 튜플 타입
  • kwargs는 딕셔너리 타입

2-1. list 타입 데이터를 args로 호출하는 방법

3. Docstring

  • 함수를 선언할 때 함수에 대한 설명
  • 어떤 퍼라미터를 받아주는지, 어떻게 동작을 하는지에 대한 내용
def text(msg):
  """
  이 함수에 대한 설명을 여기에 작성해주시오.
  """
  print("docstring 예제")

4. 지역변수와 전역변수

  • 함수 안에서 선언되는 변수와 함수 밖에서 선언되는 변수의 범위
  • global : 전역 # 어느 자리에서도 가공할 수 있을 때
  • local : 지역 # 특정한 곳 안에서 이를테면 함수 안에서만 사용되거나 클래스 안에서만 사용되는 변수들

5. Inner Function

  • 함수가 지역영역에 선언, 함수 안에 함수가 선언

 

6. callback function : 함수를 아규먼트 파라미터로 설정해서 사용

  • 함수를 args 파라미터로 설정해서 사용
  • 함수가 다른 함수를 호출하여 결과값을 실행
    • 재귀함수에서 잘 사용

7. lambda function

  • 파라미터를 간단한 계산으로 리턴되는 함수 : 삼항연산

8. map, filter, reduce

 

8-1. map

  • 순서가 있는 데이터 집합에서 모든 값에 함수를 적용시켜 결과를 출력

8-2.Filter

  • 리스트 데이터에서 특정 조건에 맞는 것만 츨력

8-3.Reduce

  • 리스트 데이터를 처음부터 순서대로 특정 함수를 실행하여 결과를 누적시켜 주는 함수

9.Decorator

  • 함수에서 코드를 바꾸지 않고 기능을 추가하거나 수정하고 싶을때 사용하는 문법
  • inner function을 선언했을 때 인스턴트처럼 사용 -> class의 개념
  • 큰 틀을 만들어두고 함수를 선언해서 집어 넣기
def a():
    code_1
    code_2
    code_3

def b():
    code_1
    code_4
    code_3
  • 데코레이터의 사용
def mother(func):
    def wrapper(*args, **kwargs):
        code_1
        result = func(*args, **kwargs)
        code_3
        return result
    return wrapper

@mother
def son1():
    code_2

@mother
def son2():
    code_4

9-1. decorator 실행 예제

  • 함수의 실행 시간을 출력하는 함수

9-2.패스워드를 입력 받아야 함수가 실행되도록하는 데코레이터 작성

 

 

 

※ 해당 카테고리는 딥노이드, 오픈놀, 앙트비에서 주최하는 '<스타트업 유니버시티: DX Challenge 교육> AI+X 역량 강화 트랙'에 대한 기록입니다.