오늘은 함수 문법에 대해 배웠다.
함수(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 역량 강화 트랙'에 대한 기록입니다.
'[AI+X 역량 강화] 인공지능 > 1) 기본기: 파이썬, 데이터 수집' 카테고리의 다른 글
#7 파이썬 기초 5 // Numpy 라이브러리 (0) | 2023.08.27 |
---|---|
#6 파이썬 기초 4 // 클래스, 예외처리, 매직 메서드 (0) | 2023.08.26 |
#4 파이썬 기초 2 // 조건문, 반복문 (0) | 2023.08.25 |
#3 파이썬 기초 1 // 기본 문법(변수 선언, 식별자, 자료형, 형변환, 연산자 학습) (0) | 2023.08.25 |
#2 파이썬 개요 // 아나콘다와 코랩의 기본 사용 방법, 단축키, 오류 (0) | 2023.08.24 |