Python

[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-2

Chansman 2025. 3. 13. 12:18

📌 Python 함수 심화 – Chapter 6-2. 가변 매개변수


✅ 1. 매개변수가 일치하지 않을 때 발생하는 오류

📌 매개변수를 적게 입력한 경우

def oz(message, n):
    for i in range(n):
        print(message)

oz('oz코딩스쿨')  # 오류 발생
  • 출력 오류
TypeError: oz() missing 1 required positional argument: 'n'
  • 원인
    • oz 함수는 message와 n이라는 두 개의 매개변수를 필요로 하지만, 호출 시 n을 전달하지 않아 오류가 발생함.

📌 매개변수를 많이 입력한 경우

def oz(message, n):
    for i in range(n):
        print(message)

oz('oz코딩스쿨', 5, 3)  # 오류 발생
  • 출력 오류
TypeError: oz() takes 2 positional arguments but 3 were given
  • 원인
    • oz 함수는 두 개의 인자를 받도록 정의되었지만, 세 개의 인자를 전달해 오류가 발생함.

✅ 2. 가변 매개변수란?

  • 정의
    • 함수가 임의의 개수의 인자를 받을 수 있도록 하는 매개변수.
    • 매개변수 이름 앞에 *을 붙이면 가변 매개변수가 됨.

📌 예시

print('이렇게 많이 넣을 수 있는 방법은?', 2, 3, '이렇게 마구잡이로')
  • 출력
이렇게 많이 넣을 수 있는 방법은? 2 3 이렇게 마구잡이로

✅ 3. 가변 매개변수의 활용

def oz(n, *values):
    for i in range(n):
        for value in values:
            print(value)
        print()

oz(3, "이렇게", "저렇게", "가변 매개변수는 요렇게", "신기하죠")
  • 출력
이렇게
저렇게
가변 매개변수는 요렇게
신기하죠

이렇게
저렇게
가변 매개변수는 요렇게
신기하죠

이렇게
저렇게
가변 매개변수는 요렇게
신기하죠

✅ 4. 가변 매개변수 사용 시 주의점

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

def oz(*values, n):
    for i in range(n):
        for value in values:
            print(value)
        print()

oz(3, "이렇게", "저렇게", "가변 매개변수는 요렇게", "신기하죠")
  • 출력 오류
TypeError: oz() missing 1 required keyword-only argument: 'n'
  • 해결 방법
    • n을 키워드 인자로 전달해야 함.
    • oz("이렇게", "저렇게", "가변 매개변수는 요렇게", "신기하죠", n=3)

📌 가변 매개변수는 하나만 사용 가능

def oz(*values, *n):  # 오류 발생
    for i in range(n):
        for value in values:
            print(value)
        print()
  • 출력 오류
SyntaxError: invalid syntax
  • 원인
    • 하나의 함수에 두 개의 가변 매개변수를 사용할 수 없음.

✅ 이해도 체크리스트

  1. 가변 매개변수를 사용하는 이유
    • 함수를 정의할 때 몇 개의 매개변수가 필요한지 미리 알 수 없는 경우.
    • 임의의 개수의 매개변수를 전달해 함수의 유연성을 높임.
  2. 가변 매개변수를 사용하기 위한 문법
    • 매개변수 이름 앞에 *를 붙임.
    
    

def example(*args): print(args)

3. **가변 매개변수 사용 시 제약 조건**
- 가변 매개변수는 반드시 **매개변수 목록의 마지막**에 위치해야 함.
- 하나의 함수에서는 **가변 매개변수를 하나만 사용**할 수 있음.

---

이 정리된 내용을 통해 가변 매개변수에 대한 이해를 확실히 다지고, 실무에서도 활용해 보세요! 🚀