1. 기본 매개변수가 가변 매개변수보다 앞에 올 때 --> 의미 없음 (에러!!) n --> "안녕하세요" 가 들어감 values --> ["즐거운", "파이썬 프로그래밍"] 이 들어감 But range() 함수의 매개변수에는 숫자만 들어올 수 있으므로 오류 발생
2. 가변 매개변수가 기본 매개변수보다 앞에 올 때 --> 가변 매개변수가 우선으로 됨 키워드 매개변수와 비교
두 가지를 함께 사용할 수 있는 방법은 없을까? 이런 상황에 대비해서 키워드 매개변수 라는 기능을 만들었음
키워드 매개변수
매개변수 이름을 지정해서 입력하는 매개변수
while True:
print(".", end="") # "."을 출력함
# 기본적으로 end가 "\n" 이라 줄바꿈이 일어나는데
# 빈 문자열 ""로 바꿔서 줄바꿈이 일어나지 않게 함
# end="" : 키워드 매개변수
2. 가변 매개변수가 기본 매개변수보다 앞에 올 때 와 비교
기본 매개변수 중에서 필요한 값만 입력하기
def test(a, b=10, c=100):
print(a + b + c)
# 1) 기본 형태
test(10, 20, 30)
# 2) 키워드 매개변수로 모든 매개변수를 지정한 형태
test(a=10, b=100, c=200)
# 3) 키워드 매개변수로 모든 매개변수를 마구잡이로 지정한 형태
test(c=10, a=100, b=200)
# 4) 키워드 매개변수로 일부 매개변수만 지정한 형태
test(10, c=200)
결과 : 60 / 310/ 310 / 220
return 키워드
함수를 실행했던 위치로 돌아가라는 의미
함수를 여기서 끝내라는 의미
1. 자료 없이 리턴하기
return 키워드 만나는 순간 함수가 종료되어 결과적으로 "A 위치입니다." 만 출력하고 프로그램이 종료됨
2. 자료와 함께 리턴하기
return 뒤에 자료를 입력하면 자료를 가지고 리턴한다 (=돌아간다) return 뒤에 있는 100을 가지고 감
3. 아무것도 리턴하지 않기
아무것도 리턴하지 않았을때는 None이 출력됨
05-2. 함수의 활용
재귀 함수 : 자기 자신을 호출하는 함수
1. 팩토리얼
n! = n * (n-1) * (n-2) * ... * 1
1) 반복문으로 팩토리얼 구하기
2) 재귀 함수로 팩토리얼 구하기
2. 피보나치 수열
a_1 = 1 a_2 = 1 a_n = a_{n-1) + a_{n-2}
1) 코드를 실행했을 때 굉장히 느림
🎁기본미션
🎁선택미션
매개변수, 기본 매개변수, 가변 매개변수에 대해 이해한 내용을 바탕으로 위와 같이 포스팅 함