- 함수의 기본
- 가변 매개변수
- 기본 매개변수
- 키워드 매개변수
함수의 기본
함수를 생성하는 기본 형태는 다음과 같습니다.
def 함수 이름():
문장기본적인 함수
def print_3_times():
print("안녕하세요")
print("안녕하세요")
print("안녕하세요")
print_3_times()
# 실행결과
안녕하세요
안녕하세요
안녕하세요매개변수의 기본
def print_3_times(value,n):
for i in range(n):
print(value)
print_3_times("안녕하세요",3)
# 실행결과
안녕하세요
안녕하세요
안녕하세요TypeError 살펴보기
함수를 호출할 때 매개변수를 넣지 않거나 더 많이 넣는다면 어떻게 될까?
1. 매개변수를 넣지 않았을 때
def print_3_times(value,n):
for i in range(n):
print(value)
print_3_times("안녕하세요")Traceback (most recent call last):
File "c:\Users\다은\Desktop\test\format3.py", line 4, in <module>
print_3_times("안녕하세요")
TypeError: print_3_times() missing 1 required positional argument: 'n'2. 매개변수를 더 넣었을 때
def print_3_times(value,n):
for i in range(n):
print(value)
print_3_times("안녕하세요",2,13)Traceback (most recent call last):
File "c:\Users\다은\Desktop\test\format3.py", line 5, in <module>
print_3_times("안녕하세요",2,13)
TypeError: print_3_times() takes 2 positional arguments but 3 were given코드를 실행하면 다음과 같이 오류를 출력합니다.
따라서 함수를 호출할 때는 함수를 선언할 때와 같은 개수의 변수를 입력해야 합니다.
가변 매개변수
앞서 살펴본 함수는 함수를 선언할 때 매개변수와 함수를 호출할 때의 매개변수가 같아야 했습니다.
하지만 우리가 자주 사용해 왔던 print() 함수는 매개변수를 윈하는 만큼 입력할 수 있습니다. 이와 같이 매개변수를 원하는 만큼 받을 수 있는 함수를 가변 매개변수라고 합니다.
가변 매개변수의 제약
가변 매개변수를 사용할 때는 다음과 같은 제약이 있습니다.
- 가변 매개변수 뒤에는 일반 매개변수가 올 수 없습니다.
- 가변 매개변수는 하나만 사용할 수 있습니다.
가변 매개변수 예제로 살펴보기
def print_n_times(n, *values):
for i in range(n):
for value in values:
print(value)
print()
print_n_times(3,"안녕","즐거운","하루")▶ 실행결과
안녕
즐거운
하루
안녕
즐거운
하루
안녕
즐거운
하루기본 매개변수
print() 함수의 자동 완성 기능으로 나오는 설명입니다.
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)가장 앞에있는 value가 바로 가변 매개변수입니다.
앞에서 설명했다시피 가변 매개변수 뒤에는 일반 매개변수가 올 수 없다고 했습니다. 하지만 매개변수 ="값" 형태로 되어 있는 매개변수를 확인할 수 있습니다.
이는 일반 매개변수가 아닌 기본 매개변수라고 부릅니다. 매개변수를 입력하지 않았을 경우 매개변수에 들어가는 기본값이 됩니다.
기본 매개변수의 제약
- 기본 매개변수 뒤에는 일반 매개변수가 올 수 없습니다.
기본 매개변수 예제로 살펴보기
def print_n_times(value, n=2):
for i in range(n):
print(value)
print_n_times("안녕하세요")키워드 매개변수
매개변수 이름을 지정해서 입력하는 매개변수를 키워드 매개변수라고 합니다.
키워드 매개변수 예제로 살펴보기
키워드 매개변수
def print_n_times(*values, n=2):
for i in range(n):
for value in values:
print(value)
print()
print_n_times("안녕하요","즐거운","하루", n=3)▶ 실행결과
안녕하요
즐거운
하루
안녕하요
즐거운
하루
안녕하요
즐거운
하루기본 매개변수 중 필요한 값만 입력하기
def test(a, b=10, c=100):
print(a+b+c)
test(10,20,30)
test(a=10, b=100, c=200)
test(c=10, a=100, b=200)
test(10, c=200)▶ 실행결과
60
310
310
220