Language/PYTHON

함수 만들기(2) 가변 매개변수 / 기본 매개변수 / 키워드 매개변수

구일일구 2021. 10. 3. 17:09
반응형

가변 매개변수

print() 함수와 같이 매개변수를 원하는 만큼 받을 수 있는 함수를 가변 매개변수라고 부름. 

매개변수가 변할 수 있다는 의미

def 함수 이름(매개변수, 매개변수, ..., *가변 매개변수):
	문장
def 함수이름(매개변수1, 매개변수2, *가변매개변수):
    print(매개변수1)
    print(매개변수2)
    print(가변매개변수)

함수이름(0, 1, 2, 3, 4, 5, 6, 7, 8)

</>
0
1
(2, 3, 4, 5, 6, 7, 8)

0은 매개변수1에 들어감

1은 매개변수2에 들어감

2 ~ 8까지 가변매개변수에 들어감

 

가변 매개변수의 제약

* 가변 매개변수 뒤에는 일반 매개변수가 올 수 없음

* 가변 매개변수는 하나만 사용할 수 있음

 

가변 매개변수 함수

def print_n_times(n, *values):
    # n번 반복합니다
    for i in range(n):
        # values는 리스트처럼 활용합니다
        for value in values:
            print(value)
        # 단순한 줄바꿈
        print()

# 함수 호출
print_n_times(3, "안녕하세요", "즐거운", "파이썬 프로그래밍")

</>
안녕하세요
즐거운
파이썬 프로그래밍

안녕하세요
즐거운
파이썬 프로그래밍

안녕하세요
즐거운
파이썬 프로그래밍

 


기본 매개변수

'매개변수=값'의 형태

매개변수를 입력하지 않았을 경우 매개변수에 들어가는 기본값

 

기본 매개변수의 제약

* 기본 매개변수 뒤에는 일반 매개변수가 올 수 없음

 

기본 매개변수

def print_n_times(value, n=2):
    for i in range(n):
        print(value)

print_n_times("안녕하세요")

</>
안녕하세요
안녕하세요

print_n_times에서 매개변수 n=2라는 형태로 입력했음. n을 입력하지 않을 경우 기본값이 2로 들어감

그래서 코드를 실행하면 '안녕하세요'라는 문자열을 2번 출력하게 되는 것

 


키워드 매개변수

기본 매개변수가 가변 매개변수보다 앞에 올 때 ➡️ 기본 매개변수가 의미가 없어짐

가변 매개변수가 기본 매개변수보다 앞에 올 때 ➡️ 가변 매개변수가 우선됨

두 가지(가변, 기본 매개변수)를 함께 사용하기 위해 키워드 매개변수라는 기능 만듦

매개변수 이름을 지정해서 입력하는 매개변수를 키워드 매개변수라고 부름

일반매개변수 - 가변매개변수 - 기본매개변수 순으로 작성

 

키워드 매개변수 예제

def print_n_times(value, n=2):
    for i in range(n):
        print(value)

print_n_times("안녕하세요", n=4)

</>
안녕하세요
안녕하세요
안녕하세요
안녕하세요

  n=2 였는데, 함수를 호출하면서 n=4로 지정했기 때문에 "안녕하세요"가 4번 출력됨

 

여러 함수 호출 형태

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
반응형