본문 바로가기

TIL/Python

함수 만들기, 함수의 활용

1. 가변 매개변수

# def 함수 이름(매개변수, 매개변수, ....., *가변 매개변수):
#	문장
    
def print_n_times(n, *values):
    for i in range(n):
        for value in values:
            print(value)

print_n_times(3, "사사키", "로키", "17")
  • 가변 매개변수 뒤에는 일반 매개변수 접근 불가능
  • 가변 매개변수는 하나만 사용 가능

2. return

함수를 실행했던 위치로 복귀, 함수를 여기서 끝내라는 의미
# A만 출력
def return_test():
    print("A")
    return
    print("B")

return_test()
  • 리턴 뒤에 자료를 입력하면, 그 자료를 가지고 리턴
# 자료, 빈 값을 리턴할 때는 변수를 이용해서 함수를 호출
def return_test():
    return 100

value = return_test()
print(value)

 

3. 재귀 함수

자기 자신을 호출. 메모화(중복 제거)를 통해 문제 해결

 

# 재귀 함수로 구현한 피보나치 수열
# global 키워드: 함수 외부를 참조

counter = 0

def fibonacci(n):
	print("fibonacci({})를 구합니다.".format(n))
    global counter
    counter += 1
    
    if n == 1:
    	return 1
    if n == 2:
    	return 2
    else:
    	return fibonacci(n-1) + fibonacci(n-2)

 

메모화?!?!?!
딕셔너리를 사용해서 중복 제거
# 메모 변수 생성
dictionary = {
    1: 1,
    2: 1
}

# 함수 선언
def fibonacci(n):
    if n in dictionary:
        return dictionary[n]
    else:
        output = fibonacci(n-1) + fibonacci(n-2)
        dictionary[n] = output
        return output

print(fibonacci(10))
print(fibonacci(20))
print(fibonacci(30))
print(fibonacci(40))
print(fibonacci(50))

'TIL > Python' 카테고리의 다른 글

문자열, 리스트, 딕셔너리와 관련된 기본 함수  (0) 2024.01.23
범위 자료형과 whlie 반복문  (1) 2024.01.23
딕셔너리와 반복문  (0) 2024.01.23
리스트와 반복문  (0) 2024.01.23