-
[혼공파] 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임.
- 기본 매개변수 뒤에도 일반 매개변수가 올 수 없음.'AI > 혼공학습단10기_Python' 카테고리의 다른 글
[혼공파] 6주차 과제 - 모듈 실행, Wrapup (0) 2023.08.10 [혼공파] 5주차 과제 - 예외처리, 모듈(1/2) (0) 2023.08.08 [혼공파] 3주차 과제 - 반복문 (0) 2023.07.20 [혼공파] 2주차 과제 - 태어난 해와 띠를 출력 (0) 2023.07.16 [혼공파] 1주차 과제 - 시작하기 & 자료형 (2) 2023.07.07