[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-4. 키워드 매개변수

2025. 3. 13. 12:20·Python

📌 Python 함수 심화 – Chapter 6-4. 키워드 매개변수


✅ 1. 기본 매개변수와 가변 매개변수의 사용

def oz(n=3, *values):
    """
    Parameters:
        n (int): 기본 매개변수로, 반복 횟수를 나타냅니다. 기본값은 3입니다.
        *values: 가변 매개변수로, 함수에 전달된 모든 위치 인수를 튜플로 묶어서 받습니다.
    """
    for i in range(n):
        for value in values:
            print(value)
        print()

oz("기본 매개변수 다음에", "가변 매개변수들", "넣을 수 있을까요?")
  • 출력 오류
TypeError: 'str' object cannot be interpreted as an integer
  • 원인
    • 첫 번째 인자 "기본 매개변수 다음에"가 n에 전달되어 발생.

📌 해결 방법

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

oz("기본 매개변수 다음에", "가변 매개변수들", "넣을 수 있을까요?", n=10)
  • 정상 출력
기본 매개변수 다음에
가변 매개변수들
넣을 수 있을까요?

기본 매개변수 다음에
가변 매개변수들
넣을 수 있을까요?

...(10번 반복)
  • 설명
    • n 값을 명시적으로 n=10으로 전달하여 해결.

✅ 2. 키워드 매개변수란?

  • 함수 호출 시 매개변수 이름을 명시하여 값을 전달하는 방법.
  • 매개변수의 순서와 상관없이 이름을 지정하여 값을 명확하게 전달 가능.

✅ 3. 키워드 매개변수 예제

list = ["안", "녕", "하", "세", "요"]
for i in list:
    print(i, end="")
  • 출력 결과
안녕하세요
  • 설명
    • end는 기본 매개변수로, 출력의 마지막에 붙일 문자열을 지정.
    • end=""로 설정해 줄 바꿈 없이 출력.

✅ 4. 키워드 매개변수를 사용한 함수

def oz(x, y=20, h=10):
    return x * y * h

print(oz(10))           # y=20, h=10 기본값 사용
print(oz(10, y=10))     # y 값만 변경
print(oz(5, y=5, h=5))  # 모든 매개변수 변경
  • 출력 결과
2000
1000
125
  • 설명
    • y와 h는 기본 매개변수이므로, 호출 시 필요에 따라 선택적으로 변경 가능.

✅ 이해도 체크리스트

  1. 키워드 매개변수를 사용하는 이유는?
    • 코드의 가독성과 유연성을 높일 수 있음.
    • 함수 호출 시 매개변수의 순서를 기억할 필요 없이, 명확하게 값을 전달할 수 있음.
  2. 키워드 매개변수를 사용하기 위한 문법은?
    • 함수 정의 시 기본값을 = 기호로 지정.
    • 함수 호출 시 매개변수명=값 형태로 전달.
def example(x, y=10):
    return x + y

print(example(5))       # y의 기본값 사용 → 출력: 15
print(example(5, y=3))  # y 값을 변경하여 호출 → 출력: 8

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

 

 

📌 Python 함수 심화 – 매개변수 정리


✅ 1. 일반 매개변수 (필수로 값 전달)

  • 함수 호출 시 반드시 값을 전달해야 하는 매개변수.
def greet(name):
    print(f"안녕하세요, {name}님!")

greet("상빈")   # 출력: 안녕하세요, 상빈님!
# greet()      # 오류 발생 (TypeError: missing 1 required positional argument)

출력 결과

안녕하세요, 상빈님!

✅ 2. 기본 매개변수 (값을 전달하지 않으면 기본값 사용)

  • 값을 전달하지 않으면 기본값을 사용.
def greet(name, message="안녕하세요"):
    print(f"{message}, {name}님!")

greet("상빈")            # 출력: 안녕하세요, 상빈님!
greet("상빈", "반가워요")  # 출력: 반가워요, 상빈님!

출력 결과

안녕하세요, 상빈님!
반가워요, 상빈님!

✅ 3. 가변 매개변수 (*args - 여러 개 값 받기)

  • 여러 개의 값을 튜플 형태로 받을 수 있음.
def greet(*names):
    for name in names:
        print(f"안녕하세요, {name}님!")

greet("상빈", "철수", "영희")

출력 결과

안녕하세요, 상빈님!
안녕하세요, 철수님!
안녕하세요, 영희님!

✅ 4. 키워드 매개변수 (**kwargs - 키워드로 값 받기)

  • 키워드 형태로 인자를 전달받아 딕셔너리 형태로 처리.
def greet(**info):
    for key, value in info.items():
        print(f"{key}: {value}")

greet(name="상빈", age=25, city="부산")

출력 결과

name: 상빈
age: 25
city: 부산

✅ 5. 매개변수의 순서 (일반 ➡️ 기본 ➡️ 가변 ➡️ 키워드)

  • 매개변수는 반드시 일반 ➡️ 기본 ➡️ 가변 ➡️ 키워드 순으로 작성해야 함.
def example(a, b=10, *args, **kwargs):
    print(a, b, args, kwargs)

example(1, 2, 3, 4, name="상빈", age=25)

출력 결과

1 2 (3, 4) {'name': '상빈', 'age': 25}

⚠️ 주의! 기본 매개변수는 항상 일반 매개변수 뒤에 위치해야 합니다.

# 잘못된 예시 (오류 발생)
def greet(message="안녕하세요", name):
    print(f"{message}, {name}님!")

# 오류 발생!
# SyntaxError: non-default argument follows default argument

이렇게 정리된 내용을 통해 각 매개변수의 개념과 사용법을 확실히 익혀보세요! 🚀

'Python' 카테고리의 다른 글

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

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

  • 공지사항

  • 인기 글

  • 태그

    americaparty
    newpoliticalparty
    뷔
    RM
    classaction
    chatgpterror
    travel ban
    livebroadcast
    global politics
    hotcoffeecase
    trumpmuskclash
    americanlaw
    lawsuitculture
    bts
    self-growth
    btsjungkook
    titaniumcase
    gpterror
    life reflection
    youngprofessionals
    basalcellcarcinoma
    btsdischarge
    btsreunion
    remittance
    smartphonedurability
    btscomeback
    homebartrend
    college reunions
    chinanightlife
    urbantrends
  • 최근 댓글

  • 최근 글

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

티스토리툴바