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

2025. 3. 13. 12:18·Python

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

---

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

'Python' 카테고리의 다른 글

[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-6. 함수의 기본활용  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-5. 함수 리턴  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-4. 키워드 매개변수  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-3.  (0) 2025.03.13
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6  (0) 2025.03.13
'Python' 카테고리의 다른 글
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-5. 함수 리턴
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-4. 키워드 매개변수
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-3.
  • [[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (717) N
      • Python (32)
      • 프로젝트 (55) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41) N
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5) N
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-2
상단으로

티스토리툴바