본문 바로가기
코딩교육/Python 초등교육에서 전문가까지

2단계 : 4. 함수 (기본 매개변수와 키워드 매개변수)

by 제리토리 2025. 3. 19.
728x90
반응형

 

Python에서 함수를 정의할 때, 매개변수에 기본값(Default Value)을 설정할 수 있으며, 이를 기본 매개변수(Default Parameter)라고 합니다. 또한, 함수 호출 시 키워드를 사용하여 특정 매개변수에 값을 전달할 수도 있으며, 이를 키워드 매개변수(Keyword Argument)라고 합니다.

 

이 장에서는 기본 매개변수와 키워드 매개변수의 개념, 활용법, 주의할 점을 깊이 있게 다룹니다.

 

 

1. 기본 매개변수 (Default Parameter)

 

기본 매개변수는 함수를 호출할 때 인자를 전달하지 않아도 기본값이 적용되도록 설정된 매개변수입니다.

 

 

㉮ 기본 매개변수 사용법

 

기본값이 있는 매개변수는 함수 정의 시 = 기호를 사용하여 값을 설정합니다.

def greet(name="손님"):
    print(f"안녕하세요, {name}님!")

greet()       # 기본값 사용
greet("철수")  # 전달된 값 사용

 

출력결과

안녕하세요, 손님님!
안녕하세요, 철수님!

 

  • 매개변수 name의 기본값은 "손님".

  • greet() 호출 시 기본값 "손님"이 사용됨.

  • greet("철수") 호출 시 전달된 값 "철수"가 적용됨.

 

 

㉯ 기본 매개변수의 활용 예제

 

  (1) 환율 변환기

def currency_converter(amount, rate=1300):  # 기본 환율 설정
    return amount * rate

print(currency_converter(100))  # 기본 환율 사용
print(currency_converter(100, 1350))  # 사용자 지정 환율 사용

 

출력결과

130000
135000

 

rate 매개변수에 기본값 1300을 설정하여, 환율 값을 입력하지 않으면 기본값을 사용.

 

  (2) 배송비 계산 함수

def calculate_shipping(weight, country="한국"):
    if country == "한국":
        return weight * 500  # 국내 배송비
    else:
        return weight * 1000  # 해외 배송비

print(calculate_shipping(2))  # 국내 배송
print(calculate_shipping(2, "미국"))  # 해외 배송

 

출력결과

1000
2000

 

기본적으로 국내 배송(한국)이 적용되며, 해외 배송을 원하면 country 값을 변경하면 됨.

 

 

2. 키워드 매개변수 (Keyword Argument)

 

키워드 매개변수(Keyword Argument)는 함수를 호출할 때 매개변수 이름을 직접 지정하여 값을 전달하는 방식입니다.

 

㉮ 키워드 매개변수의 기본 사용법

def greet(name, message):
    print(f"{name}님, {message}")

greet(name="철수", message="좋은 하루 되세요!")
greet(message="안녕하세요!", name="영희")  # 순서 변경 가능

 

출력결과

철수님, 좋은 하루 되세요!
영희님, 안녕하세요!

 

  • 매개변수의 순서와 상관없이 호출 가능.

  • 함수 호출 시 각 매개변수에 특정 값을 명확하게 전달 가능.

 

 

㉯ 키워드 매개변수의 활용 예제

 

  (1) 로그인 시스템

def login(username, password):
    print(f"사용자: {username}, 비밀번호: {password}")

login(username="admin", password="1234")
login(password="abcd", username="user1")  # 순서 변경 가능

 

출력결과

사용자: admin, 비밀번호: 1234
사용자: user1, 비밀번호: abcd

 

키워드 매개변수를 사용하면 매개변수 순서에 상관없이 명확하게 값 지정 가능.

 

  (2) 고객 주문 시스템

def order_menu(main, side, drink):
    print(f"메인 메뉴: {main}, 사이드 메뉴: {side}, 음료: {drink}")

order_menu(main="스테이크", side="샐러드", drink="콜라")
order_menu(drink="사이다", side="감자튀김", main="햄버거")  # 순서 변경 가능

 

출력결과

메인 메뉴: 스테이크, 사이드 메뉴: 샐러드, 음료: 콜라
메인 메뉴: 햄버거, 사이드 메뉴: 감자튀김, 음료: 사이다

 

  • 키워드 인자를 활용하면 가독성이 높아지고, 입력 순서에 구애받지 않음.

 

 

 

3. 기본 매개변수와 키워드 매개변수 함께 사용하기

 

기본 매개변수와 키워드 매개변수를 함께 사용하면 더욱 유연한 함수가 됩니다.

def user_profile(name, age, country="한국"):
    print(f"이름: {name}, 나이: {age}, 국가: {country}")

user_profile("철수", 25)  # 기본값 사용
user_profile("영희", 30, country="미국")  # 기본값 덮어쓰기
user_profile(age=40, name="민수")  # 키워드 인자로 순서 변경 가능

 

출력결과

이름: 철수, 나이: 25, 국가: 한국
이름: 영희, 나이: 30, 국가: 미국
이름: 민수, 나이: 40, 국가: 한국

 

  • 기본값이 있는 country는 필요할 때만 덮어쓰기 가능.

  • 키워드 인자를 사용하면 순서를 변경해도 문제 없음.

 

 

4. 주의할 점

 

㉮ 기본 매개변수는 항상 마지막에 위치해야 함

# 올바른 예
def func(a, b=10):
    pass

# 잘못된 예 (기본값이 있는 매개변수가 먼저 오면 오류 발생)
def func_wrong(a=10, b):
    pass  # SyntaxError 발생

💡 기본값이 있는 매개변수는 반드시 뒤쪽에 위치해야 한다.

 

 

5.요약

 

  • 기본 매개변수(Default Parameter):

      • 함수 정의 시 = 기호를 사용하여 기본값을 설정.

      • 인자가 없으면 기본값을 사용하며, 필요할 때만 값을 변경 가능.

 

  • 키워드 매개변수(Keyword Argument):

      • 함수 호출 시 매개변수 이름을 직접 지정하여 값을 전달.

      • 매개변수 순서와 상관없이 호출 가능하여 가독성이 향상됨.

 

  • 기본 매개변수와 키워드 매개변수를 함께 사용하면 더 유연한 함수 설계 가능.

 

  • 기본값이 있는 매개변수는 항상 뒤쪽에 위치해야 함.

728x90
반응형